2017-07-29 173 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!这也适用于完美!祝你今天愉快 ! –

相关问题