请教:定义String大小

Lixin19821010 2009-04-30 06:29:32
刚做JAVA,很多不懂。请教大家。
我想定义一个长度为100的STRING jtzz(家庭住址),存放信息之后,因为肯定家庭住址不到100位,
要求:
jtzz前面存放的就是实际用户的家庭住址,不到100的部分,用空格补齐。
如String jtzz = " ";
赋值之后jtzz = "北京海淀 ";
就是这样的一个效果。
谢谢。
...全文
487 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lixin19821010 2009-05-11
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 jiangnaisong 的回复:]
引用 12 楼 Lixin19821010 的回复:
感谢wzw9881 的回复。我会马上试验一下。
由于本人刚开始学java,很多库函数,都不了解。所以很傻的问题都拿来问了。谢谢大家帮助。

关于有朋友问为什么要这样定义字符串,似乎很傻。
其实不是。这是一种格式。
比如我们定义一个客户,客户的所有信息。包括姓名,性别,邮箱,家庭住址。
放在报文里面。那么必须得定长,这样的话我就知道,比如100-200位是这个客户的家庭地址,

[/Quote]

呵呵。我们公司都是这样做的:)
而且据我所知,同类型,同行的所有公司,都有这样做的。
传送数据,信息的,主流是两种方法,一种是我的这种
一种是通过XML的报文传送的
Lixin19821010 2009-05-11
  • 打赏
  • 举报
回复
呵呵。我们公司都是这样做的:)
而且据我所知,同类型,同行的所有公司,都有这样做的。
传送数据,信息的,主流是两种方法,一种是我的这种
一种是通过XML的报文传送的
Lixin19821010 2009-05-11
  • 打赏
  • 举报
回复
前段时间已经解决了。
我的需求是大型机的通信问题。在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[]传递到数据库中。就保证了中文的顺利插入,为以后的读取中文
提供了方便。

谢谢大家的回复。
kinghb 2009-05-04
  • 打赏
  • 举报
回复
可以用StringBuffer或StringBuilder解决
angeljiayou 2009-05-04
  • 打赏
  • 举报
回复
class jtzz
{
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("北京海淀");
}
}
这样就可以了,
oklinsong 2009-05-04
  • 打赏
  • 举报
回复
需求千变万化啊!
kimi 2009-05-04
  • 打赏
  • 举报
回复
不要使用String
尽量使用BufferedString
SimpleM 2009-05-04
  • 打赏
  • 举报
回复
初学者进来学习了~!
fafuhefan 2009-05-04
  • 打赏
  • 举报
回复
有什么样的需求,研究出什么样的技术。
xhmaomy 2009-05-04
  • 打赏
  • 举报
回复
没必要这么做吧!!!!???同意3楼的。
ty_tarena_pger 2009-05-04
  • 打赏
  • 举报
回复
我用它是为了用DataOutputStream往文件中写一定结构的数据,傻不?
ty_tarena_pger 2009-05-04
  • 打赏
  • 举报
回复
这种问题我今天也做了一次(我要处理的是byte,不够补空格:
     	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);
小蝎子YY 2009-05-04
  • 打赏
  • 举报
回复
学习了
云上飞翔 2009-05-04
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 Lixin19821010 的回复:]
感谢wzw9881 的回复。我会马上试验一下。
由于本人刚开始学java,很多库函数,都不了解。所以很傻的问题都拿来问了。谢谢大家帮助。

关于有朋友问为什么要这样定义字符串,似乎很傻。
其实不是。这是一种格式。
比如我们定义一个客户,客户的所有信息。包括姓名,性别,邮箱,家庭住址。
放在报文里面。那么必须得定长,这样的话我就知道,比如100-200位是这个客户的家庭地址,
我就知道201-240位是这位客户的邮箱…
[/Quote]
答:
关于有朋友问为什么要这样定义字符串,似乎很傻。
其实不是。这是一种格式。
比如...

我想对楼主说的是:若你真的想用定长的方法来表达一种报文的格式,那我明确地说:这个设计方案真的是太差了.没有人真的会这么干的.
Adebayor 2009-05-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wzw9881 的回复:]
可以这样:

public class String1 {
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());
}
}



[/Quote]
不错
Lixin19821010 2009-05-03
  • 打赏
  • 举报
回复
感谢wzw9881 的回复。我会马上试验一下。
由于本人刚开始学java,很多库函数,都不了解。所以很傻的问题都拿来问了。谢谢大家帮助。

关于有朋友问为什么要这样定义字符串,似乎很傻。
其实不是。这是一种格式。
比如我们定义一个客户,客户的所有信息。包括姓名,性别,邮箱,家庭住址。
放在报文里面。那么必须得定长,这样的话我就知道,比如100-200位是这个客户的家庭地址,
我就知道201-240位是这位客户的邮箱,240-280位是这位客户的爱好。等等。

谢谢大家回复。我会马上研究一下大家的回复。谢谢
  • 打赏
  • 举报
回复
public class Test5 {

public static void main(String[] args) {
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();
}
}
GeekZFZ 2009-05-01
  • 打赏
  • 举报
回复
学习
izard999 2009-05-01
  • 打赏
  • 举报
回复
可能是方便去管理吧! 3楼的方法不错
__浮夸 2009-05-01
  • 打赏
  • 举报
回复
其实,这个不难,但是真的没什么意义啊
加载更多回复(7)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧