2012-03-23 34 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

相關問題