me gustaria saber como puedo hacer esa condicion if(condicion) de la manera que: si algun caracter de la palabra es distinto de letra, la palabra no es valida.
package posible_palabra_forma_rapida;
import java.io.*;
public class Main
{
public static void main(String[] args)
{
InputStreamReader isr;
BufferedReader br;
String linea;
String palabra[];
int i,tam;
isr=new InputStreamReader(System.in);
br=new BufferedReader(isr);
try
{
System.out.println("Introduce la palabra: ");
linea=br.readLine();
tam=Integer.parseInt(linea);
palabra=new String[tam];
for(i=0;i<palabra.length;i++)
{
if()
{
System.out.println("La palabra no es valida");
}
else
{
System.out.println("La palabra es valida");
}
}
}
catch(Exception ex)
{
System.out.println("Errores en la lectura: "+ex);
}
}
}
En el api de java esta la clase pattern,creo que es lo que te puede ayudar.
http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html
Un saludo.
Cita de: Perikles en 14 Abril 2010, 00:15 AM
En el api de java esta la clase pattern,creo que es lo que te puede ayudar.
http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html
Un saludo.
No creo que se refiera ha eso.
seguramente lo que quieres hacer es lo siguiente, aunke no entiendo por que haces estas haciendo esto
linea=br.readLine();
tam=Integer.parseInt(linea);
palabra=new String[tam]
try
{
char palabra[];
System.out.println("Introduce la palabra: ");
linea=br.readLine();
palabra=linea.toCharArray();
for(i=0;i<palabra.length;i++)
{
if(palabra[i]!='Q')
{
System.out.println("La palabra no es valida");
}
else
{
System.out.println("La palabra es valida");
}
}
}
catch(Exception ex)
{
System.out.println("Errores en la lectura: "+ex);
}
Un Saludo.
y porque palabra!='Q'????No llego a entender.
EL dice "si algun caracter de la palabra es distinto de letra".
Si pasar la palabra que lee del teclado a un array de char y luego comprobar que cada posición no es letra, es optimo apaga y vamonos.
lol jaja por eso dije seguramente :xD no la deduje bien
Yo creo que con esto te seria suficiente.
Pattern p = Pattern.compile("[a-zA-Z]*");
Matcher m = p.matcher("ho1la");
boolean b = m.matches();
Esto devuelve false
y esto true
Pattern p = Pattern.compile("[a-zA-Z]*");
Matcher m = p.matcher("hola");
boolean b = m.matches();
Saludos.
a lo que me refiero con es que la condicion diga si la posicion de la letra es distinta a letra (utilizando isletter) no es valida la palabra y nose como poner esa condicion, ya que no me deja elegir el meodo isLetter.
No sera asi?
for(i=0;i<linea.length();i++)
{
if(!Character.isLetter(linea.charAt(i))){
System.out.println("");
}
}