我正在尝试找到一种循环字符串并在两个字符内获取数据的方法,例如......我有以下字符串。
String test = "<172>Lorem Ipsum";
假设我想要两个字符之间的数据'&lt;' &安培; '&GT;' 所以结果应该是“172”
现在,如果字符串在每次之间都是3位数,那么使用子字符串就可以了,但事实并非如此,因为这个字符串会发生变化,所以假设这个字符串可能是
String test = "<9>Lorem Ipsum"
我需要结果为“9”
我应该如何获取此信息。
答案 0 :(得分:1)
String data = test.substring(test.indexOf("<")+1,test.indexOf(">"));
答案 1 :(得分:1)
代码如下:
String test = "<172>Lorem Ipsum";
int index1 = test.indexOf('<');
int index2 = test.indexOf('>', index1);
String result = test.substring(index1 + 1, index2);
System.out.println("result = " + result);
结果:
result = 172
答案 2 :(得分:1)
您可以使用正则表达式来获取所需的数据。 这样的事可能
Pattern p = Pattern.compile("^<(\\d+)>");
Matcher m = p.matcher("<172>Lorem Ipsum");
if (m.find())
System.out.println(m.group(1));
else
System.out.println("your string doesn't start with \"<digits>\"");
答案 3 :(得分:0)
事实上,你也可以尝试将replaceAll与正则表达式一起使用。
System.out.println("<172>Lorem Ipsum".replaceAll(".*<|>.*", ""));
答案 4 :(得分:0)
尝试这样的事情:
public Test() {
String test = "<172>Lorem Ipsum";
String number = "";
if (test.startsWith("<")) {
for (int index = 1 ; index < test.length() ; index++) {
if (!test.substring(index, index+1).equals(">")) {
number += test.substring(index, index+1);
} else {
break;
}
}
}
System.out.println(number);
}
答案 5 :(得分:0)
int leftBound = data.indexOf("<");
int rightBound = data.indexOf(">");
data.substring(leftBound+1, rightBound));
想出来。这是其中一个“问”,然后立即弄清楚事情。