我有以下文本:
"The data of Branch 1 are correct - true"
"data of Branch 4 are correct - false"
对于每个文本,我想获取分支数和布尔值true或false。每行的结果将是:
1 true
4 false
我该怎么做?
答案 0 :(得分:1)
您可以用不同的方式来做。
在这种情况下,最简单的方法之一是分割字符串并获取第五和第九个元素
String sentence = "The data of Branch 1 are correct - true";
String[] elements = string.split(" "); then get relevant elements of array.
// elements[4] is the string 1 (you can convert it to int if necessary with Integer.parseInt(elements[4]) )
// elements[8] is the string true (you can convert it to boolean if necessary with Boolean.parseBoolean(elements[4]) )
其他可能性是:
知道您可以创建类似于以下内容的方法来打印相关部分:
public static void printRelevant(String string) {
String[] elements = string.split(" ");
System.out.println(elements[4] + " " + elements[8]);
}
...
pritnRelevant("The data of Branch 1 are correct - true");
printRelevant("The data of Branch 4 are correct - false");
由于对Sotirios的评论,我看到这两个短语不相等。 因此有必要使用正则表达式提取相关部分:
public static void printRelevant(String string) {
Pattern numberPattern = Pattern.compile("[0-9]+");
Pattern booleanPattern = Pattern.compile("true|false");
Matcher numberMatcher = numberPattern.matcher(string);
Matcher booleanMatcher = booleanPattern.matcher(string);
if (numberMatcher.find() && booleanMatcher.find()) {
return numberMatcher.group(0) + " " + booleanMatcher.group(0);
}
throw new IllegalArgumentException("String not valid");
}
答案 1 :(得分:0)
步骤1:使用String
按空格分割将所有元素放入数组中
第2步:找到您感兴趣的元素的索引
步骤3:将每个元素String
解析为所需的类型(Integer
和Boolean
)
那应该让您入门!
答案 2 :(得分:0)
如果输入字符串始终具有相同的“模式”,则只需执行以下操作:
input = "The data of Branch 1 are correct - true";
// split by space
String [] words = input.split(" ");
// take the values (data) that you need.
System.out.println(words[4] + " " + words[8]);
// also you can cast values to the needed types
类似这样的事情。 最好的方法可能是使用Regex从输入字符串中获取所需的数据。