то, что я пытаюсь сделать, это проверить, являются ли несколько строк нулевыми, чтобы перейти к следующему действию, примерно так:
if ( string1.equal(null) && ... stringN.equal(null))
{ Toast.makeText(this, "something is empty", Toast.LENGTH_SHORT).show();}
else
{ GO TO THE NEXT ACTIVITY}
все строки должны иметь содержимое... Любая помощь была бы отличной




Если ваши строки находятся в списке или массиве, вы можете их перебрать.
При использовании 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
}