java - 在 Java 中获取字符串的特定部分

标签 java string

我想获取字符串的特定部分,例如:

@org.junit.runners.Suite$SuiteClasses(value=[class data.XTest
, class data.YTest])

data.XTestdata.YTest 是可变的。 在 class 之后获取类的最佳方法是什么。

要求的输出:

sTring[0] = data.XTest;
sTring[1] = data.YTest;

最佳答案

这个单行怎么样:

String[] parts = input.replaceAll(".*\\[class (.*)\\].*", "$1").split(", class ");

这首先使用正则表达式提取 "...[class ""]" 之间的子字符串,然后拆分分隔字符以整齐地提取出来目标字符串。

这是一个测试:

public static void main(String[] args) {
    String input = "@org.junit.runners.Suite$SuiteClasses(value=[class data.XTest, class data.YTest])";
    String[] parts = input.replaceAll(".*\\[class (.*)\\].*", "$1").split(", class ");
    System.out.println(Arrays.toString(parts));
}

输出:

[data.XTest, data.YTest]

关于java - 在 Java 中获取字符串的特定部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9771118/

相关文章:

Java:在 sin(x) 中计算 x

Java - 将 2D 字符串部分转换为 2D Integer ArrayList

python - 使用 Python Pandas 将列值与不同列进行比较,并返回同一行但不同列的值

c++ - 为什么 std::string 对象的最大大小是 4611686018427387897?

c - 为什么 const-qualifier 警告取决于变量内容,而不是类型?

string - 如何从字符串中删除 K 个字符,使得每个字符最少

java - GroupLayout 一次只能与一个容器一起使用

java - 如何停止 Swing EDT

java - 参数无法解析为变量?

python - 我将如何获得 : in a string Python 之前的所有内容