split

java

读取文件,并将多的空格变成一个空格。
如:12             123                  12
变成:12 123 12
       File writeName = new File("F:\\outpoint\\Numtest1.txt"); // 相对路径,如果没有则要建立一个新的output.txt文件
        writeName.createNewFile(); // 创建新文件,有同名的文件的话直接覆盖
        BufferedWriter out = new BufferedWriter(new FileWriter(writeName));
        BufferedReader bfr = new BufferedReader(new FileReader(new File("F:\\outpoint\\NumTest.txt")));//文件路径
        String line = "";
        String str = "";
        while ((line = bfr.readLine()) != null) {
            //设置正则将多余空格都转为一个空格
            str=line+"";
            StringBuffer buf = new StringBuffer();
            String[] dictionary = str.split("\\s{2,}|\t");
            for(int i = 0 ; i < dictionary.length ; i++){
                buf.append(dictionary[i]+" ");
            }
            out.write(buf+"\r\n");   //写入文件中
            out.flush();           //刷新
            System.out.println(str);
        }

split 相关

split方法准确的来说有两个参数(String regex, int limit),只不过平时我们用的,是split的一个重载方法(String regex),默认是把第二个参数设置为0,这里是底层的代码,看了你就懂了:

public String[] split(String regex) {
    return split(regex, 0);
}

public String[] split(String regex, int limit) {
    ...
}

其根据给定的正则表达式(regex)的匹配来拆分此字符串
“\s”表示 空格,回车,换行等空白符
“+”号表示一个或多个的意思
“\S” 表示全部空格
" "只表示单个空格,所以不一样
原文链接

你可能感兴趣的:(split)