Java 根据长度从文本文件中拆分行并将其放入向量中
Java split line from text file based on length and putting it into a vector
首先,我是 Java 的新手,如果这个问题听起来很愚蠢,请原谅我。为了解释我的程序,我需要创建一个二维向量来存储从文本文件中检索到的信息。假设我有一个这样的文本文件:
12345 abcde 09876 mnbvc
8762121 hsggkqe 87201 hayib
5142 ayega 61 hsgwq
每一列都有固定的长度。我知道我们可以使用 String Tokenizer 在 java 中拆分字符串,但在这种情况下我们有多个“”。所以我的问题是 Java 是否有类似于 String Tokenizer 的东西,但用于根据长度拆分字符串。该方法是否可以执行 >9 和 <15 之类的操作来获取中间值?
子字符串应该可以解决问题。子字符串为您提供从开始索引到结束索引 -1 的一部分。
String substring(int beginIndex, int endIndex)
例子
说 lineOneText
表示文件第一行的文本。
String firstColumn = lineOneText.substring(0, 9) // this equals " 12345"
String secondColumn = lineOneText.substring(9, 15) // this equals " abcde"
忘记列宽;拆分 任意数量 个空格:
String[] columns = line.trim().split(" +");
split()
以正则表达式为参数," +"
表示“一个或多个空格”。
您需要调用 trim()
来去除前导空格,否则返回的第一个元素将是一个空字符串。
拆分行使用方法split(" ")
得到一个String数组,然后遍历String数组找到不为空的字符串,代码可能是这样的:
String line = "12345 abcde 09876 mnbvc";
String[] words = line.split(" ");
List<String> list = new ArrayList<>(4);
for (String word : words) {
if (!word.isEmpty()) {
list.add(word);
}
}
System.out.println(list);
首先,我是 Java 的新手,如果这个问题听起来很愚蠢,请原谅我。为了解释我的程序,我需要创建一个二维向量来存储从文本文件中检索到的信息。假设我有一个这样的文本文件:
12345 abcde 09876 mnbvc
8762121 hsggkqe 87201 hayib
5142 ayega 61 hsgwq
每一列都有固定的长度。我知道我们可以使用 String Tokenizer 在 java 中拆分字符串,但在这种情况下我们有多个“”。所以我的问题是 Java 是否有类似于 String Tokenizer 的东西,但用于根据长度拆分字符串。该方法是否可以执行 >9 和 <15 之类的操作来获取中间值?
子字符串应该可以解决问题。子字符串为您提供从开始索引到结束索引 -1 的一部分。
String substring(int beginIndex, int endIndex)
例子
说 lineOneText
表示文件第一行的文本。
String firstColumn = lineOneText.substring(0, 9) // this equals " 12345"
String secondColumn = lineOneText.substring(9, 15) // this equals " abcde"
忘记列宽;拆分 任意数量 个空格:
String[] columns = line.trim().split(" +");
split()
以正则表达式为参数," +"
表示“一个或多个空格”。
您需要调用 trim()
来去除前导空格,否则返回的第一个元素将是一个空字符串。
拆分行使用方法split(" ")
得到一个String数组,然后遍历String数组找到不为空的字符串,代码可能是这样的:
String line = "12345 abcde 09876 mnbvc";
String[] words = line.split(" ");
List<String> list = new ArrayList<>(4);
for (String word : words) {
if (!word.isEmpty()) {
list.add(word);
}
}
System.out.println(list);