2017-05-09 2 views
0

저는 자바 초보자입니다. 회신하기에 너무 쉬운 것 같으면 사과드립니다. 그래도 여기서 약간의 도움을 얻을 수 있기를 바랍니다.Scanner에서 IndexOf를 사용하려면 어떻게해야합니까?

사용자로부터 Scanner이라는 입력을 받아 문장을 작성하고 싶습니다. 그런 다음 사용자는 해당 문장에서 단어를 선택합니다. 그리고 나서 string.indexof("")으로, 프로그램은 그 단어가 그 문장에서 시작되는 숫자를 세어야합니다. 하지만 결과는 항상 -1입니다. 그리고 나는 왜 그런지 이해하지 못합니다.

String a,b; 

Scanner sc= new Scanner(System.in); 
System.out.println("Please write a sentence"); 
y=sc.next(); 

Scanner sc2 = new Scanner(System.in); 
System.out.println("Please pick a word from that sentence"); 

System.out.println("The word starts from=" + (y.indexOf(a=sc2.next()))); 
+0

:이 일을 우리에게 –

답변

1

는하지만 결과는 항상 -1입니다. 그리고 나는 왜 그런지 이해하지 못합니다.

-1이 반환되는 유일한 시나리오는 지정된 String이없는 경우입니다.

Scanner#next()은 공백 앞에 오는 문자를 반환하며 공백을 무시한 후에는 아무 것도 의미하지 않습니다. Scanner#next()이 아닌 전체 문장을 저장하려면 Scanner#nextLine을 사용해야합니다.

y = sc.nextLine(); 
+1

너무 감사 출력을 제공 한 후 사용자가이를 입력 한 후 콘솔에서 ") (A = sc2.next" "Y"과의 값을 인쇄 해보십시오, 그리고 –