如何解决Java根据长度从文本文件中分割行并将其放入向量中
首先,我是Java的新手,所以如果这个问题听起来很愚蠢,请原谅我。为了解释我的程序,我需要创建一个2d向量,该向量存储从文本文件中检索到的信息。假设我有一个像这样的文本文件:
12345 abcde 09876 mnbvc
8762121 hsggkqe 87201 hayib
5142 ayega 61 hsgwq
每列都有固定的长度。我知道我们可以使用String Tokenizer在Java中拆分字符串,但是在这种情况下,我们可以使用多个“”。所以我的问题是Java是否具有类似于String Tokenizer的功能,但是可以根据长度拆分字符串。该方法是否可以执行> 9和
解决方法
忘记列宽;在任意数量的空格上分割:
String[] columns = line.trim().split(" +");
split()
以正则表达式为参数," +"
表示“一个或多个空格”。
您需要调用trim()
来去除前导空格,否则您将获得一个空白字符串作为返回的第一个元素。
子字符串应该可以解决问题。子字符串为您提供了从开始索引到结束索引-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"
,
将行使用方法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);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。