2012-03-23 52 views
2

我有一个字母(字符串\字符?)作为参数和一个字一次活跃的方法。我想看看这封信是否在当时是活跃的字眼。检查一个字母是否在一个字符串(单词)中,以及它在哪个位置?

这或许可以解释得更好。也许代码将这样的伎俩:

​​

所以,这将是Android的我正在做一个有趣的刽子手游戏。现在我有图像作为信件。当按下字母(图像)时,此方法运行,并且推送的字母将成为参数。

有没有人有任何好的想法如何我可以找出字母是否在单词中,以及它在哪个位置?

我喜欢一些帮助:)

编辑:顺便说一句,目前的代码返回int每次OFC,造成[i]是一个int。这就是我试图让代码返回一个字符串的地方。我是否必须将单词分成字母,然后才能将它们与另一个字符串相等? 谢谢。

+1

'yourString.indexOf(yourCharacter)'? – assylias 2012-03-23 21:36:39

回答

1

使用字符串的方法

int i = 0; 
while(word.indexOf(i, letter) != -1) { 
    i = word.indexOf(i, letter) + 1; 
    //Do whatever 
} 

if(i == 0) { 
    //Handle missed letter 
} 
1

您正在寻找String.indexOf

int pos = activeWord.indexOf(letter); 
if (pos == -1) { 
    // letter not found 
} 
else { 
    // letter exists at zero-based position pos 
    // CAUTION: it might also exist in later positions! 
} 
1

使用String.indexOf(String s),返回第一次出现的索引,或者-1,如果没有找到

4

使用String.indexOf()

String myString = "word"; 
myString.indexOf("w"); // this returns 0; 
myString.indexOf("h"); // this returns -1 

这将只给你在字符串中第一次出现字母的位置。要获得其他职位,您需要从上一个位置获取子字符串并重复该过程。

0

怎么样日常WTF灵感暴力破解的正则表达式的解决方案?否则,只需要使用String.indexOf(炭)...

String input = "Hello world"; 
char test = 'o'; 

int found = -1; 
for (int i = 0; i < input.length(); i++) { 
    StringBuilder builder = new StringBuilder(); 
    for (int c = 0; c < input.length(); c++) { 
     if (c == i) { 
      builder.append(test); 
     } else { 
      builder.append("."); 
     } 
    } 
    Pattern p = Pattern.compile(builder.toString()); 
    if (p.matcher(input).find()) { 
     found = i; 
     break; 
    } 
} 
System.out.println(found); 
+0

本月在跆拳道Bruteforce正则表达式中的获胜者 – CodeMonkey 2017-04-26 22:52:34

相关问题