首页 > 解决方案 > 如何在Java中只修剪空白而不是\ n

问题描述

我有一个字符串

String str = " hello world\n "

当我调用 str.trim() 时,它返回

"hello world"

但是,我需要字符串看起来像

"hello world\n"

我怎么能只删除字符串中的前导和尾随空格?

标签: java

解决方案


尝试使用它,但将 Character.isWhitespace 替换为您自己的应作为空白跟踪的实现

public static String trim(String s) {
     return ltrim(rtrim(s));
}

public static Boolean isWhitespace(char c) {
     return Character.isWhitespace(c);
}

public static String ltrim(String s) {
     int i = 0;
     while (i < s.length() && isWhitespace(s.charAt(i))) {
         i++;
     }
     return s.substring(i);
}

public static String rtrim(String s) {
    int i = s.length()-1;
    while (i >= 0 &&  isWhitespace(s.charAt(i))) {
        i--;
    }
    return s.substring(0,i+1);
}

推荐阅读