我想检查一些字符是否在两个其他字符之间。
例如,给定以下字符串:
String myString = "Hello, my name is 'Tesda', and this is 'ASDfs'."
我想检查'S'
中的"ASDfs"
是否在''
之间,同时请记住我想检查每个''
,而不是直接跳到''
第二个boolean isBetween;
if (!MyString.substring(MyString.indexOf("'"), MyString.indexOf("'")).contains("S"))
isBetween = true;
。
我尝试过一个愚蠢的代码(我根本不熟悉这个代码,因为直到现在我还不需要它),这是:
''
嗯,这不起作用,我不明白如何完美。
另外,我想用另一个字母替换那个S,但我只想在"my name is"
之间,而不是''
之后的那个,我想要获取字母的索引,如果它在里面String NewText = "Hello, My NAme is 'Ba', i'm from 'LA' ";
boolean contains = false;
int indexOfS = -1;
String MyString_temp = NewText;
while (MyString_temp.length() >= 0) {
int first = MyString_temp.indexOf("\'");
if(first == -1)
{
break;
}
int second = MyString_temp.substring((first + 1)).indexOf("\'");
second = second + first + 1;
if(second == -1)
{
break;
}
contains = MyString_temp.substring(first,second).contains("A");
if (contains) {
break;
}
MyString_temp = MyString_temp.substring((second + 1));
}
Log.i("ResultTest","Index is: " + indexOfS + " - Text is: " + MyString_temp);
if(!contains){
Log.i("ResultTest", "Yes " + i);
Log.i("ResultTest","TeF: " +NewText.replace(NewText.substring(indexOfS,indexOfS+1),"Test"));
} else
Log.i("ResultTest", "No " + i);
,然后替换该特定索引中的那个字母,这可能吗?
使用提供的答案,我已经制作了以下代码(为什么我发布了这个问题):
Index is: -1 - the text here ..
Failed to output, invalid index
输出
javac.exe
答案 0 :(得分:2)
考虑使用regular expressions。你的例子可以很简单
MyString.matches("\'S\'");
编辑:更新了更新后的问题的答案:您的初始代码块看起来可能已经完成了诀窍,但是您必须记住indexOf()
仅返回您需要的第一个出现的内容。这可能有效:
String MyString_temp = MyString;
String lookingFor = "S";
String separator = "\'";
boolean contains = false;
int indexOfLooking = -1;
while (MyString_temp.length() >= 0) {
int first = MyString_temp.indexOf(separator);
if(first == -1) {
break;
}
int second = MyString_temp.substring(first + 1).indexOf(separator);
second += first + 1;
if(second == -1) {
break;
}
indexOfLooking = MyString_temp.substring(first, second).indexOf(lookingFor);
contains = (indexOfLooking >= 0)
if (contains) {
break;
}
MyString_temp = MyString_temp.substring(second + 1);
}
在while
循环后,contains
有你的答案,indexOfLooking
的位置为S
。
答案 1 :(得分:0)
使用Apache Commons,您可以使用以下方法:
StringUtils.substringBetween(str, "'");
获取包含所有结果的String []使用:
StringUtils.substringsBetween(str, "'", "'");