Сравните несколько строк Android

то, что я пытаюсь сделать, это проверить, являются ли несколько строк нулевыми, чтобы перейти к следующему действию, примерно так:

if ( string1.equal(null) && ... stringN.equal(null))
{ Toast.makeText(this, "something is empty", Toast.LENGTH_SHORT).show();}
else
{ GO TO THE NEXT ACTIVITY}

все строки должны иметь содержимое... Любая помощь была бы отличной

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
415
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Если ваши строки находятся в списке или массиве, вы можете их перебрать.

При использовании ArrayList:

private boolean verify(final ArrayList<String> list)
{
    for (String entry : list)
    {
        if (TextUtils.isEmpty(entry))
            return false;
    }

    return true;
}

Или, если вы используете массив, то же самое просто изменило параметр на String[]:

private boolean verify(final String[] list)
{
    for (String entry : list)
    {
        if (TextUtils.isEmpty(entry))
            return false;
    }

    return true;
}

Вы также можете сделать это следующим образом:

private String[] array;

private String one = "one";
private String two = "two";
private String three = "three";
private String four = "four";
private String five = "five";


private void someMethod(){
    if (isStringsNotNull(getStringArray())){
        //Start another activity
    } else {
        //Do something
    }
}

private String[] getStringArray(){
    return new String[]{one, two, three, four, five};
}

private Boolean isStringsNotNull(String[] array){
    for(String str: array){
        if (str == null){
            return false;
        }
    }
    return true;
}

Хороший ответ @PerracoLabs, но isEmpty проверяет только, равна ли длина 0. Не так ли?

если вы используете java8/лямбда, вы можете попробовать использовать эту функцию:

List<String> stringList = new ArrayList<>(Arrays.asList(string2.split(" "))); // Split the string into list
        // compare the list with the source of the string, if match put into the list of result
        List<String> result = stringList.stream().filter(new Predicate<String>() {
            @Override
            public boolean test(String s) {
//                return string1.contains(s); // case sensitive
                return Pattern.compile(Pattern.quote(s), Pattern.CASE_INSENSITIVE).matcher(string1).find(); // case insensitive
            }
        }).collect(Collectors.toList());

        // check the match results
        if (result.size()<stringList.size()){
            Log.d("test", "onCreate: not match");
        }else{
            Log.d("test", "onCreate: match");
        }
Ответ принят как подходящий

Если у вас есть переменное количество строк для проверки, я бы сделал что-то вроде следующего:

private boolean validate(String... items) {
  for (String item : items) {
    if (TextUtils.isEmpty(item)) {
      return false;
    }
  }
  return true;
}

Затем ваш код вызовет метод проверки с таким количеством строк, которое вам нужно для проверки:

if (validate(string1, string2, stringN)) {
  Toast.makeText(this, "something is empty", Toast.LENGTH_SHORT).show();
} else { 
  // GO TO THE NEXT ACTIVITY
}

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