Java 换行 UTF-8 文本?

标签 java utf-8 word-wrap

我需要简单地换行长文本以将其显示在几行中。我尝试了默认代码段:

String s = "Español texto aquí";
StringBuilder sb = new StringBuilder(s);

int i = 0;
while (i + 20 < sb.length() && (i = sb.lastIndexOf(" ", i + 20)) != -1) {
sb.replace(i, i + 1, "\n");
}

System.out.println(sb.toString());

但是对于西类牙语文本,我在输出中得到了错误的符号。如何换行非英文文本?

最佳答案

String s = "Español texto aquí texto aquí Español texto aquí";
StringBuilder sb = new StringBuilder(s);

int i = 0;
while (i + 20 < sb.length() && (i = sb.lastIndexOf(" ", i + 20)) != -1) {
  sb.replace(i, i + 1, "\n");
}

System.out.println(sb.toString());

打印

Español texto aquí
texto aquí Español
texto aquí

现在,我看不出有什么不妥。

关于Java 换行 UTF-8 文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11197027/

相关文章:

php - PHP mb_strtoupper 函数中的土耳其字符错误

unicode - 使用 Go 删除​​变音符号

Java、Unicode、UTF-8 和 Windows 命令提示符

java - Java 中 CRTP 的替代方案

java - @EJB注解为空

java - 如何设置我的 compileSDKversion 以支持 Java 1.6

javascript - 自定义中断词

html - 使列的宽度固定并将单词换行到下一行

html - 如何让我的文本包裹在一个 div 中?

java - Java 中的枚举基类