Java/Android: как найти первые символы строки, если она равна другой строке
У меня есть String Array #1 стран [], и у меня есть другой String Array #2 splitr_str[], которые имеют те же значения, но он разделен пополам.
Я хочу проверить, какое значение массива # 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]
и если я нашел это? я выбираю "А", который
split_str[2]
И так далее.
Есть идеи, как это сделать?
2 ответа
Попробуйте использовать для петель. Как я только что узнал из этого поста, вы используете ярлык и 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;
}
}
}
Я знаю, это немного неэффективно. Но это лучшее решение, которое я мог найти
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);
}
}
}
}
}
Надеюсь, поможет!