将带有 \n\r\t\f 分隔符的文本转为List

435 阅读1分钟

一、\n\r\t\f 是什么意思

1. \n 换行符,使光标定位到下一行

public class Test {
	public static void main(String[] args) {
		System.out.print("aaaaaaaaaaaaa\nbbbb");
	}
}

结果:
image.png

2. \r 回车符,使光标回到当前行的行首。如果之前该行有内容,则会被覆盖;

public class Test {
	public static void main(String[] args) {
		System.out.println("hello world\r12345");
	}
}

结果:
image.png
说明:
在这里,看起来就像是之前输出的hello world被清空后,又输出1234一样。
然而在控制台中它的输出结果就是我们预期的结果:
20181204141750758.jpg
至于什么原因,应该和编译器有关吧。

3. \t 是制表符。相当于tab缩进。

补足空格使得你输出的内容为4的倍数

public class Test {
	public static void main(String[] args) {
		System.out.println("a\t*");
		System.out.println("123412341234");
		System.out.println("aaa\t*");
		System.out.println("123412341234");
		System.out.println("aaaa\t*");
		System.out.println("123412341234");
		System.out.println("aaaaa\t*");
		System.out.println("123412341234");
	}
}

结果: image.png

4. \f 是换页符,在控制台上输出没有意义。

public class Test {
	public static void main(String[] args) {
		System.out.println("aaaa\fbbbb");
	}
}

结果:
image.png

二、将带有这些分隔符的文本转为 List

public class Test{
    public static void main(String[] args){
        String content = "a b\tc\nd\re\ff,g";
        //取字段值(可接受的分割符有空格、制表符、换行符、回车符、换页符、英文逗号)
        StringTokenizer st = new StringTokenizer(content, " \t\n\r\f,");
        List<String> values = new ArrayList<String>();
        while (st.hasMoreElements()) {
            String value = st.nextToken();
            if(StrUtil.isNotBlank(value)){
                values.add(value.toUpperCase());
            }
        }
        System.out.println(values);
    }
}

结果:
image.png

参考:

java 中\n\r\t\f的区别