我想知道我是否有以下字符串:
12_123_4_5678_ans123
我知道如果你知道开始和结束索引,你可以使用:
String substr=mysourcestring.subString(startIndex,endIndex);
如果你想从特定的索引到结束获得子串,你可以使用:
String substr=mysourcestring.subString(startIndex);
如果你想从特定字符到结束获取子字符串,你可以使用:
String substr=mysourcestring.subString(mysourcestring.indexOf("yourCharacter"));
如果以上实际上是4个选项(每个选项可以有不同的长度),提取12,123,4,5678和answer = 123,怎么能为上面写的呢?
公共间隔为“_”,答案必须在其前面有“ans”。
答案 0 :(得分:1)
您可以使用String类split方法。如果你总想分开“_”。这将使用您选择的分隔符将字符串拆分为字符串实例数组。
String mystring = "test_12_woop_11";
String results[] = mystring.split("_");
答案 1 :(得分:1)
正如@JustDanyul和我之前所说String.split("_");
会做的。现在解析我们的答案,就这样做:
String[] data = "12_2345_3465_312_ans12".split("_");
String answer = null;
for (String s : data) {
if (s.startsWith("ans")) {
answer = s
break;
}
}
答案 2 :(得分:1)
首先,它看起来像是在使用String作为数组。这通常是反模式,应该避免。我不知道这个字符串来自哪里,但问问自己是否你不能设置,以便你传递这些信息,而不是在字符串中。
String [] values = new String {
"12",
"123",
"4",
"5678",
"ans123"
}; //here the 'ans' would always be the last index, obviously tailor your array to be whats
// mosts convienent for you.
我正在进行一个巨大的考验,猜测这是多种选择问题的选择和答案? 在这种情况下,您可能需要一组可能的答案和一个指向哪个索引存储的答案......
String [] values = new String {
"12",
"123",
"4",
"5678"
};
int correctAnsIndex = 1;
int userAnsIndex = 2;
String correctAns = values[ansIndex];
booelan isCorrect = (userAnsIndex == correctAnsIndex);
ect, ect, ect...
如果你不能改变这个,那么hacky解决方案就是split命令。
"12_123_4_5678_ans123".split("_");
会像这样返回和数组
{ “12”, “123”, “4”, “5678”, “ans123”};
得到答案看起来像这样......
String [] values = "12_123_4_5678_ans123".split("_");
String answer = null;
for(String s : values ) {
if( s.startsWith("ans")){
answer = s;
}
}