2012-03-31 4 views
6

Существует пространство в строке, но при запуске программы, она возвращает -1, что означает, что нет пробелов в строке Вот код:IndexOf для пространства в строке

import java.util.Scanner; 


public class Main { 

    public static void main(String[] args) { 
     Scanner scan = new Scanner(System.in); 
     String s = scan.next(); 
     System.out.println(s.indexOf(' ')); 
    } 

} 

ответ

7

Scanner.next() возвращает следующий токен во входе, а по умолчанию токены разделяются пробелами. то есть s гарантированно не содержит пробелов.

Возможно, вы имели в виду String s = scan.nextLine();?

3

Сканер читает текст, разделенный пробелами, который может быть разрывом строки, а также символом пробела. Вот почему scan.next() вернет строку без пробелов. Если вам нужна линия ломает вместо этого, используйте scan.nextLine()

3

Попробуйте

String s = scan.nextLine(); 

в scan.next() получает следующий "слово", которое не может содержать пробелы.

4

это отлично подходит для меня.

System.out.println("one word".indexOf(' ')); 

Это из-за сканера следующего метода. check this

1

Используйте scan.nextLine(), потому что scan.next() будет читать до тех пор, пока он не встретит пустое пространство (вкладка, пробел, введите), чтобы оно закончило получать, когда оно видит пространство. Вы сами могли догадаться об этом, распечатав тоже! будет успешным!

Смежные вопросы