Próbowałem poniżej, ale Eclipse zgłasza ten błąd.Jak porównać znak, aby sprawdzić, czy jest on pusty?
while((s.charAt(j)== null)
Co znajduje się w poprawny sposób sprawdzania, czy dana postać jest null
?
Próbowałem poniżej, ale Eclipse zgłasza ten błąd.Jak porównać znak, aby sprawdzić, czy jest on pusty?
while((s.charAt(j)== null)
Co znajduje się w poprawny sposób sprawdzania, czy dana postać jest null
?
Przed wykonaniem jakiejkolwiek kontroli postaci sprawdź, czy String
s
nie jest null
. Znaki są zwracane przez String#charAt
prymitywne char
rodzaje i nigdy nie będzie null
:
if (s != null) {
...
Jeśli próbujesz przetwarzać znaki z String
jednym naraz, można użyć:
for (char c: s.toCharArray()) {
// do stuff with char c
}
(przeciwieństwie C
, NULL
sprawdzanie terminatorów nie jest wykonywane w Javie.)
Jeśli s
jest łańcuchem i nie jest zerowy, to musisz spróbować g, aby porównać "spację" z char. Myślisz, że "przestrzeń" nie jest postacią, a przestrzeń jest po prostu null
, ale prawda jest taka, że przestrzeń jest postacią. Dlatego zamiast null
użyj (która jest spacją) do porównania z charakterem.
Poza tym pytanie jest 2,5 roku życia, uważam, że * bardzo * mało prawdopodobne, że szukają miejsca. –
Nie możemy sprawdzić, czy znak jest pusty, czy nie, ponieważ znak jest pierwotnym typem danych.
Ta kontrola polega na tym, że znak jest spacją. 'Char' nie może mieć wartości' null', ponieważ 'char' jest typem pierwotnym. – Jesper
Dzięki @Jesper masz rację –
Prawidłowy sposób sprawdzania char
jest faktycznie opisany here.
Stwierdza:
go zmienić na:
if(position[i][j] == 0)
Każdychar
można porównać zint
. Domyślną wartością jest'\u0000'
, tj. 0 dla elementu tablicychar
. I to jest dokładnie to, co rozumiesz przez pustą komórkę, przypuszczam.
Domyślną wartością dla prymitywów char jest 0, jako jej wartość ascii. możesz zaznaczyć znak char, jeśli jest pusty. na przykład:
char ch[] = new char[20]; //here the whole array will be initialized with '\u0000' i.e. 0
if((int)ch[0]==0){
System.out.println("char is null");
}
'char' nie może być pusty, ponieważ nie jest typem referencyjnym. To jest prymitywne. – xenteros
"char" jest prymitywny. 'null' jest zarezerwowane dla niezatwierdzonych odniesień. – madth3
Czy 's' String? Jeśli tak, 's.charAt' zwróci typ pierwotny' char', a nie obiekt 'Character', więc nie może mieć wartości NULL. Domyślne wartości tablicy "char" to ''\ u0000'' lub prostsza'' \ 0''. Możesz nawet użyć 's.charAt (j) == 0' – Pshemo
Czy próbujesz sprawdzić koniec łańcucha tak jak w C? – madth3