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);
                    }
                }
            }
        }
    }

Надеюсь, поможет!

Другие вопросы по тегам