Chcę, aby każdy z nich przeszedł przez wszystkie elementy tablicy ciągów i wydrukował tylko wszystkie niepuste elementy String[] arr = {"jeden"," dwa"," "," cztery"}; dla (...

1
amanuel 24 czerwiec 2021, 17:22

5 odpowiedzi

Najlepsza odpowiedź

startsWith(" ") dopasuje tylko ciągi, które zaczynają się od pustej spacji. Problem polega na tym, że przegapisz ciągi, które nie mają spacji (np. „”), i zignorujesz ciągi, które nie są puste, ale zaczynają się od pustej spacji (np. „pięć”).

Powinieneś najpierw użyć trim(), aby usunąć wszelkie dodatkowe spacje, a następnie użyć metody isEmpty(), aby sprawdzić, czy ciąg jest całkowicie pusty.

if (!x.trim().isEmpty()) { // assuming x is never null
    System.out.println(x);
}
0
Shahzad 24 czerwiec 2021, 14:31

Możesz użyć String#isBlank, pod warunkiem, że masz java 11 lub nowszy. Niektóre podejścia, które możesz zmodyfikować do swoich potrzeb:

String[] arr = {"one","  two"," "," four"};
for (String x:arr) {
     if (!x.isBlank()) {
        System.out.println(x);
     }
 }

Lub przekonwertować tablicę na listę

String[] arr = {"one","  two"," "," four"};

Arrays.asList(arr).forEach(str -> {
    if(!str.isBlank()){
        System.out.println(str);
    }
});

Lub używanie strumieni i filtrowanie pustych

String[] arr = {"one","  two"," "," four"};
Arrays.stream(arr)
      .filter(Predicate.not(String::isBlank))
      .forEach(System.out::println);
0
Eritrean 24 czerwiec 2021, 15:23

To może pomóc

        Arrays.stream(arr).filter(s -> !s.trim().isEmpty()).forEach(System.out::println);
0
Roophie 24 czerwiec 2021, 14:26

Sprawdź, czy ciąg jest pusty po trim()

for(String x:arr){
 if(!x.trim().isEmtpty()){
   System.out.println(x);
   }
 }
0
sanjeevRm 24 czerwiec 2021, 14:27

Najpierw przytnij wszystkie początkowe lub końcowe spacje, a następnie sprawdź, czy ciąg jest pusty, czy nie, jak poniżej:
Metoda trim() java string eliminuje spacje wiodące i końcowe.
Na przykład dla ciągu str = five , str.trim() zwróci five po usunięciu początkowych i końcowych białych znaków.
A isEmpty() sprawdzi, czy ciąg jest pusty.

String[] arr = {"one","two"," ","four"};
    for (String x : arr) {
        boolean empty = x.trim().isEmpty();
            if ( !empty ) {
                System.out.println(x);
         }
     }
0
GURU Shreyansh 24 czerwiec 2021, 14:38