刚做JAVA,很多不懂。请教大家。
我想定义一个长度为100的STRING jtzz(家庭住址),存放信息之后,因为肯定家庭住址不到100位,
要求:
jtzz前面存放的就是实际用户的家庭住址,不到100的部分,用空格补齐。
如String jtzz = " ";
赋值之后jtzz = "北京海淀 ";
就是这样的一个效果。
谢谢。
我想定义一个长度为100的STRING jtzz(家庭住址),存放信息之后,因为肯定家庭住址不到100位,
要求:
jtzz前面存放的就是实际用户的家庭住址,不到100的部分,用空格补齐。
如String jtzz = " ";
赋值之后jtzz = "北京海淀 ";
就是这样的一个效果。
谢谢。
赋值之后
jtzz = "北京海淀 ";
写一个方法String toSizeString(String src, int size) {
if (src.length()>=size){
return src; //如果超过要截断的话在这里截断
} for (int i=src.length; i<size; i++) {
src += " ";
}
return src;
}
插入到最前面当然insert的第一个参数就是0,第二个参数随你便啦
public static void main(String[] args) {
StringBuilder s = new StringBuilder();
s.append("aaa");
s.setLength(100);
System.out.println(s.length()); System.out.println(s.toString());
}
}
String str = "1234567890";
String s = toFixLengthStr(str, 40);
System.out.println(s + "|");
printRule(50);
}
public static String toFixLengthStr(String str, int len) {
if(str == null || str.length() >= len) {
return str;
}
char[] chs = new char[len];
char[] schs = str.toCharArray();
for(int i = 0; i < len; i++) {
chs[i] = i < schs.length ? schs[i] : ' ';
}
return new String(chs);
}
private static void printRule(int len) {
for(int i = 1; i <= len; i++) {
System.out.print(i % 10);
}
System.out.println();
}
}
由于本人刚开始学java,很多库函数,都不了解。所以很傻的问题都拿来问了。谢谢大家帮助。关于有朋友问为什么要这样定义字符串,似乎很傻。
其实不是。这是一种格式。
比如我们定义一个客户,客户的所有信息。包括姓名,性别,邮箱,家庭住址。
放在报文里面。那么必须得定长,这样的话我就知道,比如100-200位是这个客户的家庭地址,
我就知道201-240位是这位客户的邮箱,240-280位是这位客户的爱好。等等。谢谢大家回复。我会马上研究一下大家的回复。谢谢
尽量使用BufferedString
private static byte[] initByte(byte[] src,int length){
byte[] bb = new byte[length];
for(int i=0;i<bb.length;i++)
bb[i] = ' ';
System.arraycopy(src, 0, bb, 0, src.length>=length?length:src.length);
return bb;
}
byte[] b_name=initByte("lijie".getBytes(),8);
{
String c;
final static int len=100;
public jtzz(String a)
{
int b=a.length();
while(b<len)
{
a=a+"\u0000";
b++;
}
c=a;
System.out.println("the string is "+c);
}
public static void main(String args[])
{
jtzz xx=new jtzz("北京海淀");
}
}
这样就可以了,
我的需求是大型机的通信问题。在java中。
非常统一ty_tarena_pger的做法。
我的做法如下:
byte[] des = new byte[998+139];
byte[] tmp = new byte[139];
byte[] tmpbyte = commarea.getBytes("935");
System.arraycopy(tmpbyte,0,tmp,0,tmpbyte.length);
System.arraycopy(tmp,0,des,0,139);
tmp = new byte[16];
tmpbyte = khh.trim().getBytes("935");
System.arraycopy(tmpbyte,0,tmp,0,tmpbyte.length);
System.arraycopy(tmp,0,des,139+0,16);
tmp = new byte[6];
tmpbyte = zjlx.trim().getBytes("935");
System.arraycopy(tmpbyte,0,tmp,0,tmpbyte.length);
System.arraycopy(tmp,0,des,139+16,6);
这样通过tmp把des填充满。将des作为参数,插入到数据库中。
这样做是将中文,英文,数字都转换成byte[]类型,然后以byte[]传递到数据库中。就保证了中文的顺利插入,为以后的读取中文
提供了方便。谢谢大家的回复。
而且据我所知,同类型,同行的所有公司,都有这样做的。
传送数据,信息的,主流是两种方法,一种是我的这种
一种是通过XML的报文传送的
呵呵。我们公司都是这样做的:)
而且据我所知,同类型,同行的所有公司,都有这样做的。
传送数据,信息的,主流是两种方法,一种是我的这种
一种是通过XML的报文传送的