Java使用正则表达式分割将字符串放入数组中

标签 java arrays regex string split

我正在尝试将一个字符串放入一个数组中,以便我可以按照与我正在读取的原始文件中的顺序不同的顺序打印 token 。

下面是我到目前为止的代码,我还包含了我正在读取的输入文件。我希望能够做的是从原始文件中打印一个单词; system.out.println(tokens[4]); 这将打印“物种”

import java.util.Scanner;

public class inClassTest4Time {

  public static void main(String[] args) {

Scanner scan = new  
Scanner(inClassTest4Time.class.getResourcesAsStream("pet.txt"));
String line;
String[] tokens;
    while (scan.hasNextLine()) 
    {
        line = (scan.nextLine());
        tokens = line.split("//s");
        for (int i = 0; i < tokens.length; i++) {
            System.out.println(tokens[i]);

        }

    }


}
}

输入文件:

Pet
===================
- species : String
+ isChipped : boolean
- name : String
- age : int
===================
+ Pet ( String name )
===================

最佳答案

我认为您的意思是使用 \\s 而不是 //s//s 实际上是根据文字字符串 //s 进行分割(即不转义)。由于你的字符串都没有这个,所以没有 split 。我怀疑如果你这样做 tokens[2] 你会得到 -species : String

关于Java使用正则表达式分割将字符串放入数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28351105/

相关文章:

java - 客户端重启后如何重新获取InterProcessMutex

java - 如何处理 Java 字符串中的 & 符号并将 URL 作为查询参数值发送?

java - SQLServer 的 Hibernate 配置 - 驱动程序类

java - Android NDK - 如何从点击获取坐标并将它们显示在 TextView 上?

javascript - 删除数组中的前缀 y 以将其用于图表的轴

python - 基于 CSV 创建二维数组

java - 我有两个 byte[] ,我需要比较这个 byte[] 之间的字符串,是否需要显式转换 new String(byte[])

c# - LINQ 可以用于搜索字符串中的多个 Regex 表达式吗?

Java:替换第一个位置上除符号 "+"之外的所有非数字符号

ruby - 在文件中查找并打印与字符串或正则表达式完全匹配的行 (Ruby)