如何对一个字符串"定长"地插入换行符?
不知道怎么描述好,给个例子吧,
给定一个字符串,可能包括中英文数字特殊符号等,比如
“啊啊啊啊啊啊啊aaaaaaaaaaaaaa啊啊啊aaaaaaaa啊啊啊啊啊啊啊”
要求变成
“啊啊啊啊啊啊啊\naaaaaaaaaaaaaa\n啊啊啊aaaaaaaa\n啊啊啊啊啊啊啊”
使它能够以一定的长度来换行,如下:(注意是定长,不是定字数)
啊啊啊啊啊啊啊
aaaaaaaaaaaaaa
啊啊啊aaaaaaaa
啊啊啊啊啊啊啊
不用代码,给个思路就行,解决了立刻结贴给分!
------解决方案--------------------http://www.java2000.net/viewthread.jsp?tid=2519
------解决方案--------------------按字符數分
一個漢字是多少字符
一個字母是多少字符
------解决方案--------------------用SUBSTR按一定度取字符串,在拼接起来即可了!!
------解决方案--------------------你可以求出给定字符串中各个最大子串,在每一个字串中插入特定字符
同样,老紫竹的方法也可以
------解决方案--------------------把原串按长度拆分,然后每个子串尾部添加\n,然后拼起来
------解决方案--------------------Web 还是 Swing/AWT ?
------解决方案--------------------如果你是输入框输入的(输入的时候,你在什么地方按回车),然后用label 来显示的话,它就是以什么形式显示的
用以下代码:
string s = " ";
s = Request.Form["tbtext"].Replace(" ", " ");
s = Request.Form["tbtext"].Replace('\n'.ToString(), "<br>");
label.text=s;
------解决方案--------------------我试过,FF3可以自动换行,楼主还是把代码贴出来吧,好用来测试。用 CSS 应该可以解决。
------解决方案--------------------substring();就可以了.
------解决方案--------------------java中一个汉字也可疑定义为char
------解决方案--------------------
------解决方案--------------------一个汉字2个char吧
把字符串存到字符数组里?
然后...
------解决方案--------------------Java code
public class Test {
public static void main(String[] args) {
String str = "啊啊啊啊啊啊啊aaaaaaaaaaaaaa啊啊啊aaaaaaaa啊啊啊啊啊啊啊" +
"使它能够以一定的长度来换行,如下:(注意是定长,不是定字数)";
str = toMultiLine(str, 16);
System.out.println(str);
}
public static String toMultiLine(String str, int len) {
char[] chs = str.toCharArray();
StringBuffer sb = new StringBuffer();
for(int i = 0, sum = 0; i < chs.length; i++) {
sum += chs[i] < 0xff ? 1 : 2;
sb.append(chs[i]);
if(sum >= len) {
sum = 0;
sb.append("\n");
}
}
return sb.toString();
}
}
------解决方案--------------------
17楼的方法不错,学习了~
------解决方案--------------------
不过1个中文是占2个字节吧,和char一样呢~
------解决方案--------------------
先转换成byte
一个汉字占四个字节。一个字母占两字节的方式。就可以了
------解决方案--------------------
我认为换成 byte 不是一个好的方法,因为汉字在 GBK 时采用两个字节进行编码,
而在 UTF-8 时至少得采用三个字节进行编码。