請問一下高手們,我在做一個程序時遇到這樣一個問題,我要按所給的長度對一個長字符串進行換行如:
------------------------------------------------------------- 這個橫線是要求打印的長度,我是用String.lenth==25 來換行的,即每25個字換一行,可是遇到字符串中有英文或標點就有問題了,它會把漢字和英文都認為是一個長度,而不是漢字2個,英文1個.請問高手們,這個應該怎樣解決?這是正確的
-----------------------------------------------------------
這是ㄧ個測試這是ㄧ個測試這是ㄧ個測試
這是ㄧ個測試這是ㄧ個測試這是ㄧ個測試
這是ㄧ個測試這是ㄧ個測試這是ㄧ個測試這是錯誤的,有英文和標點
-----------------------------------------------------------
這是ㄧ個測試weweewrwwrrw,
這是ㄧ個測試這是ㄧ個測試wgw12
這是ㄧ個測試1213421werwr
23432432sfweewewrwer先謝謝了
------------------------------------------------------------- 這個橫線是要求打印的長度,我是用String.lenth==25 來換行的,即每25個字換一行,可是遇到字符串中有英文或標點就有問題了,它會把漢字和英文都認為是一個長度,而不是漢字2個,英文1個.請問高手們,這個應該怎樣解決?這是正確的
-----------------------------------------------------------
這是ㄧ個測試這是ㄧ個測試這是ㄧ個測試
這是ㄧ個測試這是ㄧ個測試這是ㄧ個測試
這是ㄧ個測試這是ㄧ個測試這是ㄧ個測試這是錯誤的,有英文和標點
-----------------------------------------------------------
這是ㄧ個測試weweewrwwrrw,
這是ㄧ個測試這是ㄧ個測試wgw12
這是ㄧ個測試1213421werwr
23432432sfweewewrwer先謝謝了
解决方案 »
- 搜索引擎中长串匹配及聚类算法:后缀树算法(Java版)
- 两道外企面试题~求解
- 利用jni如何在C中将String数组转化为char**
- 根据当前日期,得到下周第一天、下月第一天,下三个月后的第一天。Calendar类里有现成的实现方法么?
- 911那天编完的小游戏!要的话送源代码^_^
- 出学着问题
- 求设计模式 电子书 高分
- 请问如何知道ResultSet中是否有记录和记录的总数,有什么方法吗?
- IBM,I服了U!
- 小弟有一关于weblogic5.1下使用jdbc的问题向大家请教:...(答者有分)
- thinking in java 把我看郁闷了大家帮忙吧
- 本人刚学java,请高手提供一些文章和好的网址,和一些教程在哪里下的,最好是电子版的书.
等待高手解决一下把
也学习学习
[说明]就是说如果按你的要求,每行是固定长度的话,结尾不可避免会有半个汉字出现,就会乱码。所以这个你需要做一下判断。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();
}
}
汉字的标准是第一个字节ascii码>128,第二个字节随意so,从第一个字节(byte)开始判断:
if(上一个字符(char)不是汉字 && 这个字节ascii>128)
{
这个字符=汉字;
}
外边得再套一层循环,自己写吧,判断方法就是这样,我以前用c++写过
有没有看我说明啊?他就是要求长度一致!比如说 "aaaa啊bbbbb不"
不管5字节一分还是6字节一分总会出现半个汉字!
除非末尾汉字长度加一字节。那么就要改变楼主原意了。
counter达到行长换行,汉字的判断用它的unicode码判断,范围是从20000到2A6D6