求一段代码!限制字符串输出 你可以定义一个新的串,像这样:String str = “我aa爱b北京dd天安门gg”;str = str.substring(0,10)+"...";System.out.println(str); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 “我aa爱b北...”是多少长度?如果按楼主的字节算法,长度是12;如果按Java的默认算法,长度是9。BTW,Java中默认的Unicode编码,中英文字符都是2个字节。 可以给你一个思路。用String -> byte[] --> String 的方式完成,不过需要对截取了的byte[]逆向判断连续高位为1的字节是否为偶数再做是否要长度+1或-1的操作最后用这个byte[], new String(byte[],int offset, int length)+"..."合成。 public class TestBc { public static void main(String[] args) { String s = "我爱d北京天安门dfj困乏第四纪"; char[] buffer = new char[s.length() * 2]; char c; int j = 0; int num = 0; //规定字的个数 for (int i = 0; i < s.length(); i++) { if(num<10){ if (s.charAt(i) >= 0x100) { c = s.charAt(i); byte[] buf = ("" + c).getBytes(); buffer[j++] = (char) buf[0]; buffer[j++] = (char) buf[1]; num++; } else { buffer[j++] = s.charAt(i); num++; } } else{ break; } } String s1 = new String(buffer,0,j); String s2 = s1; byte [] buffer2 = new byte[s2.length()]; for(int i=0;i<s2.length();i++) { buffer2[i] = (byte)s2.charAt(i); } String s3 = new String(buffer2)+"..."; System.out.println("输出结果"); System.out.println(s3); }} 感谢henryzd提供代码,搞定了。 单词首字母缩写问题 执行deleteRow()之后结果集被关闭? 面试题 去掉JMenuItem左侧的空白 关于BorderLayout的一些问题 jxl 可以实现向excel中添加comment么 关于数组插入元素的问题 如何读取文本文件里头的内容并显示出来? 有中文的. 客户端IP地址的获得? 关于BufferedWriter源代码的问题 Java socket传递对象(object)结果异常,请关注。 请朋友们来看看,下面两段代码有什么区别???
不过需要对截取了的byte[]逆向判断连续高位为1的字节是否为偶数再做是否要长度+1或-1的操作
最后用这个byte[], new String(byte[],int offset, int length)+"..."合成。
String s = "我爱d北京天安门dfj困乏第四纪";
char[] buffer = new char[s.length() * 2];
char c;
int j = 0;
int num = 0; //规定字的个数
for (int i = 0; i < s.length(); i++) {
if(num<10){
if (s.charAt(i) >= 0x100) {
c = s.charAt(i);
byte[] buf = ("" + c).getBytes();
buffer[j++] = (char) buf[0];
buffer[j++] = (char) buf[1];
num++;
} else {
buffer[j++] = s.charAt(i);
num++;
}
}
else{
break;
}
}
String s1 = new String(buffer,0,j);
String s2 = s1;
byte [] buffer2 = new byte[s2.length()]; for(int i=0;i<s2.length();i++) {
buffer2[i] = (byte)s2.charAt(i);
}
String s3 = new String(buffer2)+"...";
System.out.println("输出结果");
System.out.println(s3);
}}