检查字母x是否在两个引号之间

时间:2016-10-10 13:55:30

标签: java

我想检查一些字符是否在两个其他字符之间。

例如,给定以下字符串:

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

2 个答案:

答案 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, "'", "'");