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);