Java - Pregunta sobre String

 
Vista:

Pregunta sobre String

Publicado por eduardo (10 intervenciones) el 05/05/2010 20:41:51
Buenos días. Quisiera hacer unas cuantas preguntas:
En C solía hacer algo como ésto para recorrer una cadena:

void main( void )
{
char cadena[80];
register int i;

printf( " Deme cadena: " );
gets( cadena );

printf( "\n Su cadena en mayusculas es: " );
for ( i = 0; cadena[i]; ++i ) putchar( toupper( cadena[i] ) );
}

La cadena es sencilla de recorrer aquí dado que termina con un caracter nulo.
¿Cómo lo hago en Java?
La cadena se lee desde la consola y lo he hecho así:

import java.util.Scanner;

public class Programa1
{
public static void main( String args[] )
{
String cadena;

Scanner entrada = new Scanner( System.in );

System.out.printf( " Deme cadena: " );
cadena = entrada.next();
}
}

Pero el problema es que lee hasta encontrar un caracter de espaciado, pienso que es parecido a scanf() de C cuando lee una cadena.
¿Cómo hago para que lea tambíen con espacios blancos?

Muchas gracias por alguna respuesta que me puedan dar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Pregunta sobre String

Publicado por eduardo (10 intervenciones) el 05/05/2010 22:06:09
Hola de nuevo. Bueno ya averigué como recorrer la cadena y también cómo obtenerla con espacios blancos desde la consola. Estoy haciendo un pequeño programa que me diga si una palabra es palíndromo o no.

import java.util.Scanner;

public class Palindromo
{
public static void main( String args[] )
{
String cadena;

Scanner entrada = new Scanner( System.in );

System.out.printf( "\n Deme cadena : " );
cadena = entrada.nextLine();

if ( esPalindromo( cadena ) )
System.out.printf( "\n %s ES un palindromo\n", cadena );
else
System.out.printf( "\n %s NO es un palindromo\n", cadena );
}


// devuelve true si la cadena "s" es un palíndromo, false en caso contrario
public static boolean esPalindromo( String s )
{
int lcar, rcar;
boolean bandera;

lcar = 0;
rcar = s.length() - 1;
bandera = true;

while ( (lcar <= rcar) && bandera ) {
if ( s.charAt(lcar) != s.charAt(rcar) ) bandera = false;
++lcar;
--rcar;
}
return bandera;
}
}

Pero quiero preguntar 2 cositas:
1) ¿Por qué me exige retornar como static en la función esPalindromo?
2) ¿Cómo hago para que el programa siga ejecutando hasta que el usuario decida salir?, o sea algo como ésto en C:

int main( void )
{
char cadena[80];
int continuar = 'S'; /* bandera de continuación */

/* ciclo de control del programa */
while ( continuar != 'N' ) {

/* */

printf( "\n\n\n\t\t Desea continuar? S/N: " );
fflush( stdin );
continuar = toupper( getchar() );
}

return 0;

} /* Fin de main */

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar