내 응용 프로그램에 문제가 있습니다. 사용자가 문자열에 대한 값을 입력하지 않으면 (즉, 무언가를 입력하라는 메시지가 나타나면 Enter 키를 누릅니다) 앱이 프로그램을 종료할지 묻습니다.
맞나요?Null 스캐너 용 문자열
words = s.nextLine();
if (words.equals(null)) {
내 응용 프로그램에 문제가 있습니다. 사용자가 문자열에 대한 값을 입력하지 않으면 (즉, 무언가를 입력하라는 메시지가 나타나면 Enter 키를 누릅니다) 앱이 프로그램을 종료할지 묻습니다.
맞나요?Null 스캐너 용 문자열
words = s.nextLine();
if (words.equals(null)) {
.
nextLine()
은 빈 문자열을 반환합니다. 까지 내가 말할 수있는대로 결코 반환 null
. 입력의 끝에 도달하면 NoSuchElementException
을 반환합니다 (이 경우 은이됩니다) BufferedReader.readLine()
과 달리. 그래서 당신이 원하는 : 먼저 입력의 끝을 감지 할 경우
if (words.equals(""))
또는
if (words.length() == 0)
또는
if (words.isEmpty())
... 그리고
hasNextLine()
를 사용합니다.
이 작동합니다 : 아니, 당신이 바로 그 일을하지 않을
if (words == null || words.length() == 0) {
'words'가 null 인 경우 문자열의 length() 메소드 길이가 P – PermGenError
입니다. 'words.equals (null)'이 null 포인터 예외가 발생합니다. –
touche, 맞습니다! 나는 그것이 String인지 char인지 확실하지 않았다. [ – Chexpir
null는, 당신이 얻을 것은 빈 문자열이기 때문에, 정확하지 :
사용 : words.isEmpty()
또는 words.equals("")
또는 words.length()==0
반환되는 문자열은 null이 아니며 단지 빈 문자열입니다. NULL,
어쩌면 당신은 빈 문자열을 확인해야 정확하지
을해야 하는가? – ArVan
직접 해보고 작동하는지 확인하십시오. –