elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Un poco de principiantes con ganas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Un poco de principiantes con ganas  (Leído 1,255 veces)
Genvi

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Un poco de principiantes con ganas
« en: 3 Diciembre 2015, 20:55 pm »

Perdonad, si alguien puede ayudarme se lo agradecería.
Resulta que estoy haciendo un código en el que introduzco varías frases por teclado pero el problema viene cuando introduzco un número, que al ser un string lo que quiero introducir, pues acepta números. Yo quiero que si se introduce un número en vez de una letra de error, pero no se como detectar si en el string introducido hay números, espacios en blanco delante o signos. Que alguien me solucione este problema y me digo con qué método se resuelve por favor.
Gracias!


En línea

0roch1

Desconectado Desconectado

Mensajes: 123



Ver Perfil
Re: Un poco de principiantes con ganas
« Respuesta #1 en: 3 Diciembre 2015, 21:01 pm »

y el código?

Utiliza el Geshi para resaltar el código.


En línea

Genvi

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Un poco de principiantes con ganas
« Respuesta #2 en: 3 Diciembre 2015, 21:56 pm »

El código da igual, solo quiero saber como marcar como erróneo los números que se introducen pero bueno aquí tienes :)

Código:
import java.util.Scanner;
public class MapaTiempo {

public static void main(String[] args) {


Scanner teclado = new Scanner(System.in);


System.out.println("Introduzca el nombre de la nación: ");
Nación pais = new Nación(teclado.nextLine());

String enter = "";
for(int i = 0; i < 1;){
System.out.println("Introduzca el nombre de la comunidad (enter para salir): ");
Comunidad region = new Comunidad(teclado.nextLine());
if(region.getNombre().equals(enter))
break;
for(int j = 0; j < 1;){
System.out.println("Introduzca el nombre del municipio de esta comunidad (enter para salir): ");
Municipio pueblo = new Municipio(teclado.nextLine());
if(pueblo.getNombre().equals(enter))
break;
}
}

El código que tengo es este. En el cual da igual introducir una letra que un número, pero evidentemente las comunidades no tienen números en sus nombres asique solo quiero que se puedan introducir letras por teclado.
En línea

0roch1

Desconectado Desconectado

Mensajes: 123



Ver Perfil
Re: Un poco de principiantes con ganas
« Respuesta #3 en: 4 Diciembre 2015, 00:35 am »

Hay diferentes formas, te dejo algunas.

Código
  1. import java.util.Scanner;
  2. import java.util.regex.Pattern;
  3.  
  4. public class Text {
  5.  
  6.  
  7. public static void main(String[] args) {
  8. Scanner sc = new Scanner(System.in);
  9. String str = null;
  10.  
  11. System.out.println("1- Escribe un texto");
  12. str = sc.nextLine();
  13. if(isLetters(str)) {
  14. System.out.println(str);
  15. }
  16.  
  17. System.out.println("2- Escribe un texto");
  18. str = sc.nextLine();
  19. if(isAlpha(str)) {
  20. System.out.println(str);
  21. }
  22.  
  23. System.out.println("3- Escribe un texto");
  24.    if(hasLetters(sc)) {
  25.   System.out.println(sc.nextLine());
  26.    }
  27.  
  28. System.out.println("4- Escribe un texto");
  29. str = sc.nextLine();
  30.    if(isStringAlpha(str)) {
  31.   System.out.println(str);
  32.    }
  33.  
  34. }
  35.  
  36. private static boolean isStringAlpha(String text) {
  37. int charCount=0;
  38.    String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  39.    if(text.length() == 0) return false;
  40.    for(int i=0;i<text.length();i++){
  41.        for(int j=0;j<alphabet.length();j++){
  42.            if(text.substring(i,i+1).equals(alphabet.substring(j,j+1))
  43.                || text.substring(i,i+1).equals(alphabet.substring(j,j+1).toLowerCase()))
  44.                charCount++;
  45.        }
  46.        if(charCount != (i+1)){
  47.            return false;
  48.        }
  49.    }
  50.        return true;
  51. }
  52.  
  53. private static boolean hasLetters(Scanner sc) {
  54. if(sc.hasNext("[A-Za-z]+")) {
  55. return true;
  56. }else {
  57. return false;
  58. }
  59.  
  60. }
  61.  
  62. private static boolean isLetters(String text) {
  63. if(text.matches("[a-zA-Z]+")) {
  64. return true;
  65. }else {
  66. return false;
  67. }
  68. }
  69.  
  70. private static boolean isAlpha(String text) {
  71. Pattern pattern = Pattern.compile("\\p{Alpha}+");
  72.        if(pattern.matcher(text).matches()) {
  73.         return true;
  74.        }else {
  75.         return false;
  76.        }
  77.    }
  78.  
  79.  
  80. }
  81.  
En línea

Genvi

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Un poco de principiantes con ganas
« Respuesta #4 en: 4 Diciembre 2015, 00:59 am »

Está genial tu aportación. Me estaba comiendo la cabeza mucho porque no me salía.
Muchísimas gracias, eres un crack. Algún día seré como tú *-*
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
No nos quedemos con las ganas con .NET...
.NET (C#, VB.NET, ASP)
BADBYTE-K 8 8,056 Último mensaje 21 Enero 2006, 19:25 pm
por ahumeniy
Poco a poco voy progresando en el mundo del hacking.
Hacking Wireless
alpha015 8 4,775 Último mensaje 22 Septiembre 2011, 18:45 pm
por alpha015
[QUEDADA] Charla de Principiantes para principiantes.
Foro Libre
TALENT CRAZY 0 908 Último mensaje 5 Febrero 2015, 03:31 am
por TALENT CRAZY
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines