2017-07-29 420 views
1

我有一個字符串數組#1個國家[]和我有另一個字符串數組#2 splitr_str []具有相同值爲 ,但它分成兩半。的Java/Android的:如何找到一個字符串的第一個字符,如果它等於另一個字符串

我想要的是檢查#2陣列的哪個值與包含全字的#1字符串數組的前半部分值相匹配。

下面是一個例子:

String[] countries = new String[]{"USA", "Spain" ,"Germany"}; 

String[] split_str = new String[]{"Sp", "ain", "A" ,"US" ,"Ger", "ma","ny"}; 

現在我想只檢測匹配ssplit_str值

,對於美國,我只是想挑「美」,這是國家價值觀上半年在

split_str[3] 

,如果我找到了嗎?我挑「A」即

split_str[2] 

依此類推。

關於如何做到這一點的任何想法?

+0

看看https://stackoverflow.com/questions/33271035/how-do-you-check-to-see-if-the-1st-letter-in-a-string-is-equal-to-something它幫你 – Akash

回答

1

嘗試使用for循環。正如我剛剛從this post得知的那樣,一旦找到匹配項,您就可以使用標籤和break輕鬆打破兩個循環。

outerloop: 
for(String country : countries){ 
    for(String segment : split_str) { 
     if(country.startsWith(segment)) { 
      // do something here when the segment has been detected 
      break outerloop; 
     } 
    } 
} 
+0

你讓它看起來很容易!哇,我不知道「startsWith」方法謝謝你Keara祝你有美好的一天! –

+0

我可以幫助我快樂!你也有一個愉快的一天。 – Keara

+0

我只是不知道爲什麼我不能打破循環,如果我檢測到的部分,即使我把休息;在IF內部。我很困惑 –

0

我知道它有點低效。但它的最佳解決方案我能找到

for (int i = 0; i < countries.length; i++) 
    { 
     for(int j = 0; j < split_str.length; j++) 
     { 
      if(countries[i].substring(0, (countries[i].length()/2) + 1).contains(split_str[j])) 
      { 
       for (int k = 0; k < split_str.length; k++) 
       { 
        if (countries[i].substring((countries[i].length()/2) + 1, countries[i].length()).contains(split_str[k])) 
        { 
         System.out.println(i); 
        } 
       } 
      } 
     } 
    } 

希望它有幫助!

+0

謝謝Aayush Gupta!這也適用於完美!祝你今天愉快 ! –

相關問題