一、借鉴别人:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | public class Test { public static void main(String[] args) { String str = " kk kkk klaf fsaff fsge tg sagh ger fsaga "; //测试的字符串 String regex = "\\s+"; //表示一个或多个空格的正则表达式 str = str.trim(); //去掉字符串开头和结尾的空格 String str1 = str.replaceAll(regex, ""); //去掉所有的空格 String str2 = str.replaceAll(regex, " "); //把一个或多个空格替换成一个空格 System.out.println(str); System.out.println(str1); System.out.println(str2); }} |
输出结果如下:
1 2 3 | kk kkk klaf fsaff fsge tg sagh ger fsagakkkkkklaffsafffsgetgsaghgerfsagakk kkk klaf fsaff fsge tg sagh ger fsaga |
总结:
\s* 表示若干个空格(可以是0个)。
\s+ 表示一个或多个空格
二、我的案例:
有个txt文本,里面有一些字符串,以空格隔开,现在想要读取其中的文本,组成一个数据结构。。
我们发现,里面每行数据是一组,整体又是一组,,字符串之间有若干空格,如LinkedList<LinkedList<String>>
代码:
public LinkedList<LinkedList<String>> getContentFromTxt(String filePath) {
LinkedList<LinkedList<String>> linkedList = new LinkedList<LinkedList<String>>();
BufferedReader bufferedReader = null;
try {
bufferedReader = new BufferedReader(new FileReader(filePath));
String lineString = "";
String[] lineArray = null;
String regex = "\\s+";
while ((lineString = bufferedReader.readLine())!=null) {
lineArray = lineString.split(regex);
if(lineArray.length < 1){
continue;
}
LinkedList<String> innerList = new LinkedList<>();
for (String str : lineArray) {
if("".equals(str) || str==null){
continue;
}
innerList.add(str);
}
linkedList.add(innerList);
}
bufferedReader.close();
fileReader.close();
}catch (Exception e){
System.err.println("异常");
}
return linkedList;
}运行结果:
1441

被折叠的 条评论
为什么被折叠?



