将内容附加到StringBuffer对象时,无法实现新行" \ n"

时间:2013-08-01 10:43:34

标签: java string

我写的方法采用大字符串并分成两行:

private String  getNameSplited(String name){
char[] sAr = name.toCharArray();

StringBuffer strBuff = new StringBuffer(name.length());
    boolean start = true;
    for (int i = 0; i < sAr.length; i++) {
        if(i > 20) {
            if(sAr[i] == ' ' && start){
                strBuff.append("\n");
                start = false;
            } else {
                strBuff.append(sAr[i]);
            }
        } else {
            strBuff.append(sAr[i]);
        }
    }
    return strBuff.toString();
}

在此方法中,“\ n”无效。 在我的项目中,我们没有使用直接的System.out.println();

我们正在使用out.print(strBuff);在对话框中打印此字符串。

因此可以提出如何使此代码工作的建议。 谢谢你...

3 个答案:

答案 0 :(得分:5)

\n可能不是给定系统中的换行符。使用System.getProperty("line.separator")获取与运行时环境对应的行分隔符。

使用strBuff.append(System.getProperty("line.separator"));或将System.getProperty("line.separator")存储为常量,并在需要换行的任何地方使用它。

答案 1 :(得分:1)

你能尝试这样的事吗?

    strBuff.append(System.getProperty("line.separator")); 

答案 2 :(得分:1)

如果输出目标是文件,则可以使用“line.separator”属性 strBuff.append(System.getProperty("line.separator"))