indexOf для пробела в строке
в строке есть пробел, но когда я запускаю программу, она возвращает -1, это означает, что в строке нет пробелов Вот код:
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(' '));
}
}
5 ответов
Scanner.next()
возвращает следующий маркер на входе, и по умолчанию маркеры разделены пробелами. т. е. s
гарантированно не содержит пробелов.
может быть, вы имели в виду String s = scan.nextLine();
?
это отлично работает для меня.
System.out.println("one word".indexOf(' '));
Это из-за следующего метода сканера. проверить это
сканер считывает текст, разделенный пробелами, который может быть разрывом строки, но также и пробелом. Вот почему сканирование.next () вернет строку без пробелов. Если вам нужны разрывы строк, используйте scan.nextLine ()
попробовать
String s = scan.nextLine();
как сканировать.следующий() возвращает следующее "слово", которое не может содержать пробелы.
использовать scan.nextLine()
, потому что scan.next()
будет читать, пока не встретит пробел (вкладка, пробел, ввод), поэтому он закончит получать, когда он видит пространство. Вы сами можете догадаться об этом, напечатав s тоже!
будьте успешны!