[JAVA基础篇22]—去掉字符串中的回车、换行、制表符

若一个字符串存在 \n(换行)\r(回车)\t(制表) 符。那么即使相同内容的字符串(不含特殊符号),他们的equals方法也会不同。这就要求我们移除这些特殊符号。

* 测试移除代码中的换行符 public class TestReturn { public static void main(String[] args) { String s1 = "i am china\n\r"; String s2 = "i am china"; Info info1 = new Info(); info1.setName(removeRNT(s1)+"a"); Info info2 = new Info(); info2.setName(s2+"a"); System.out.println(info1.getName()); System.out.println(info2.getName()); System.out.println(info1.getName().equals(info2.getName())); @Data public static class Info { private String name; * 在正则表达式中\s表示所有的空格: 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。注意 Unicode 正则表达式会匹配全角空格符。 * 使用正则表达式,移除换行符(且不移除空格) * @param originalStr 原始字符串 * @return 移除换行\r、回车\n、制表\t符的字符串 public static String removeRNT(String originalStr) { if (originalStr == null || originalStr.isEmpty()) { return originalStr; return originalStr.replaceAll("[\t\n\r]",""); * 移除字符串中所有的空白格(包含换行\r、回车\n、制表\t符) * @param str 原始串 * @return 无空格后的串 public static String trimAllWhitespace(String str) { if (str == null || str.isEmpty()) { return str; int len = str.length(); StringBuilder sb = new StringBuilder(str.length()); for (int i = 0; i < len; i++) { char c = str.charAt(i); if (!Character.isWhitespace(c)) { sb.append(c); return sb.toString();