急!急!急!-------->關於String的問題

zhouzhe613 2005-11-13 01:59:33
請問一下高手們,我在做一個程序時遇到這樣一個問題,我要按所給的長度對一個長字符串進行換行如:
------------------------------------------------------------- 這個橫線是要求打印的長度,我是用String.lenth==25 來換行的,即每25個字換一行,可是遇到字符串中有英文或標點就有問題了,它會把漢字和英文都認為是一個長度,而不是漢字2個,英文1個.請問高手們,這個應該怎樣解決?

這是正確的
-----------------------------------------------------------
這是ㄧ個測試這是ㄧ個測試這是ㄧ個測試
這是ㄧ個測試這是ㄧ個測試這是ㄧ個測試
這是ㄧ個測試這是ㄧ個測試這是ㄧ個測試

這是錯誤的,有英文和標點
-----------------------------------------------------------
這是ㄧ個測試weweewrwwrrw,
這是ㄧ個測試這是ㄧ個測試wgw12
這是ㄧ個測試1213421werwr
23432432sfweewewrwer

先謝謝了
...全文
179 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
CrazyBoBo 2005-11-15
  • 打赏
  • 举报
回复
字符编码的问题
饿鱼骨头 2005-11-15
  • 打赏
  • 举报
回复
或者放到char[]里面,然后一个一个char输出,用个int counter计数,字母标点+1,汉字+2,
counter达到行长换行,汉字的判断用它的unicode码判断,范围是从20000到2A6D6
饿鱼骨头 2005-11-14
  • 打赏
  • 举报
回复
to believefym(暮色,miss,迷失,miss。。。) ( )
有没有看我说明啊?

他就是要求长度一致!

比如说 "aaaa啊bbbbb不"
不管5字节一分还是6字节一分总会出现半个汉字!
除非末尾汉字长度加一字节。那么就要改变楼主原意了。
thunderhorn 2005-11-13
  • 打赏
  • 举报
回复
自己判断一下汉字也可以的:
汉字的标准是第一个字节ascii码>128,第二个字节随意

so,从第一个字节(byte)开始判断:
if(上一个字符(char)不是汉字 && 这个字节ascii>128)
{
这个字符=汉字;
}
外边得再套一层循环,自己写吧,判断方法就是这样,我以前用c++写过

zhouzhe613 2005-11-13
  • 打赏
  • 举报
回复
高手们啊,郁闷死了,楼上的大侠们的解决方法好像不行啊,sky_boxer(饿鱼骨头)这位朋友给的方法不错,可是我要用什么办法才能判断哪个是汉字呢?如果有这个方法我也就不用转成Byte这种类型了,我直接就可以判断了,还有没有人帮帮忙啊!!!
zhouzhe613 2005-11-13
  • 打赏
  • 举报
回复
高手们啊,郁闷死了,楼上的大侠们的解决方法好
kevin911 2005-11-13
  • 打赏
  • 举报
回复
试试char[],一个char可以保存一个汉字的
believefym 2005-11-13
  • 打赏
  • 举报
回复
楼上的方法对的话就真是见鬼了,字都被你拆得乱七八糟
饿鱼骨头 2005-11-13
  • 打赏
  • 举报
回复
用byte可以实现,刚才写了一个例子,省略了末尾数组越界及行结尾处理[说明]。
[说明]就是说如果按你的要求,每行是固定长度的话,结尾不可避免会有半个汉字出现,就会乱码。所以这个你需要做一下判断。

jdk1.5.0调试运行通过

//save as ByteTest.java
public class ByteTest
{
public ByteTest()
{
try
{
String s = new String("sad发送可ajkls见合法fsad阿双方就.123,洒对123");
byte[] b = s.getBytes();
for(int i = 0;i < b.length; i += 5)
{
System.out.println(new String(b,i,5));
}
}catch(Exception e){e.printStackTrace();}
}
public static void main(String[] args)
{
new ByteTest();
}
}


Mars.CN 2005-11-13
  • 打赏
  • 举报
回复
你考虑一下用byte来存这些文字

没想过这些问题
等待高手解决一下把
也学习学习

62,629

社区成员

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

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