2012-03-31 22 views
6

Hay un espacio en la cadena, pero cuando ejecuto el programa, devuelve -1, lo que significa que no hay espacios en la cadena Aquí está el código:indexOf para el espacio en la cadena

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

} 

Respuesta

7

Scanner.next() devuelve el siguiente token en la entrada, y de forma predeterminada, tokens son espacios en blanco separados. es decir, s se garantiza que no contiene espacios.

Quizás quiso decir String s = scan.nextLine();?

3

El escáner lee texto separado por espacios en blanco, que puede ser un salto de línea pero también un carácter de espacio. Es por eso que scan.next() devolverá una cadena sin espacios. Si necesita saltos de línea en su lugar, utilice scan.nextLine()

3

Trate

String s = scan.nextLine(); 

como scan.next() obtiene la siguiente "palabra" que no puede contener espacios.

4

esto funciona perfectamente bien para mí.

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

Esto se debe al siguiente método del escáner. check this

1

Use scan.nextLine() porque scan.next() leerá hasta que encuentre un espacio en blanco (tab, espacio, intro) para que termine de obtener cuando vea espacio. ¡Tú también podrías adivinar esto imprimiendo s! tenga éxito!

Cuestiones relacionadas