2012-03-31 32 views
6

Có một không gian trong chuỗi, nhưng khi tôi chạy chương trình, nó sẽ trả về -1, có nghĩa là không có khoảng trống trong chuỗi Dưới đây là các mã:indexOf cho không gian trong chuỗi

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(' ')); 
    } 

} 

Trả lời

7

Scanner.next() trả về mã thông báo tiếp theo trong đầu vào và theo mặc định, mã thông báo được cách nhau khoảng trắng. nghĩa là s được đảm bảo không chứa khoảng trắng.

Có thể bạn có nghĩa là String s = scan.nextLine();?

3

Máy quét đọc văn bản được phân tách bằng khoảng trắng, có thể là ngắt dòng nhưng cũng là ký tự khoảng trắng. Đây là lý do tại sao scan.next() sẽ trả về một String không có dấu cách. Nếu bạn cần ngắt dòng thay vào đó, sử dụng scan.nextLine()

3

Hãy thử

String s = scan.nextLine(); 

như scan.next() được "lời" bên cạnh mà không thể chứa khoảng trắng.

4

điều này hoàn toàn phù hợp với tôi.

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

Điều này là do phương pháp quét tiếp theo. check this

1

Sử dụng scan.nextLine()scan.next() sẽ đọc cho đến khi nó gặp khoảng trắng (tab, khoảng trắng, nhập) để nó kết thúc khi nhìn thấy khoảng trắng. Bản thân bạn cũng có thể đoán được điều này bằng cách in s! thành công!

Các vấn đề liên quan