Foros del Web » Programación para mayores de 30 ;) » Java »

Verificar si un string tiene numeros consecutivos

Estas en el tema de Verificar si un string tiene numeros consecutivos en el foro de Java en Foros del Web. Hola, buenas noches a todos, estoy con un inconveniente que no estoy pudiendo resolver, resulta que tengo un String de números Ej : 1,2,3,4 (o ...
  #1 (permalink)  
Antiguo 10/12/2016, 18:52
 
Fecha de Ingreso: abril-2016
Mensajes: 16
Antigüedad: 8 años
Puntos: 0
Exclamación Verificar si un string tiene numeros consecutivos

Hola, buenas noches a todos, estoy con un inconveniente que no estoy pudiendo resolver, resulta que tengo un String de números Ej : 1,2,3,4 (o podría ser 5682) y necesito saber, en el caso de que sea consecutivo que retorne verdadero y en el caso contrario falso, tengo este método, pero no esta funcionando, alguien tiene una mejor idea:

Código:
public boolean probarConsecutivos(int arreglo[]){
    	
		Arrays.sort(arreglo);
		
		for(int i = 1; i < arreglo.length; i++){
			
				if((arreglo[i] - 1) != arreglo[i - 1]){
					
					
				return false;
				
				}
		
		}
	
		return true;


	}

Muchas gracias!!
  #2 (permalink)  
Antiguo 10/12/2016, 22:59
Avatar de detective_jd  
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 437
Antigüedad: 13 años
Puntos: 6
Respuesta: Verificar si un string tiene numeros consecutivos

Aqui tienes que te puede ayudar:

Código Java:
Ver original
  1. import java.util.Scanner;
  2. import java.util.Arrays;
  3. public class NConsecutivos
  4. {
  5. private static int numeros[] = new int[3];
  6.  
  7. public static boolean probarConsecutivos(int arreglo[])
  8. {
  9.  
  10. Arrays.sort(arreglo);
  11. for(int i = 1; i < arreglo.length; i++)
  12. {
  13. if((arreglo[i] - 1) != arreglo[i - 1])   
  14. {
  15. return false;
  16. }
  17. }
  18.  
  19. return true;
  20.  
  21.  
  22. }
  23.  
  24. public static boolean probarConsecutivos(int uno, int dos, int tres)
  25. {
  26. int num[] = new int[3];
  27. num[0] = uno;
  28. num[1] = dos;
  29. num[2] = tres;
  30.  
  31. return probarConsecutivos(num);
  32. }
  33.  
  34. public static void main(String args[])
  35. {
  36.  
  37.  
  38. Scanner entrada = new Scanner(System.in);
  39. int uno;
  40. int dos;
  41. int tres;
  42.  
  43. System.out.print("Dame el primer numero: ");
  44. uno = entrada.nextInt();
  45. System.out.print("Dame el segundo numero: ");
  46. dos = entrada.nextInt();
  47. System.out.print("Dame el tercer numero: ");
  48. tres = entrada.nextInt();
  49.  
  50. if(probarConsecutivos(uno, dos, tres))
  51. {
  52. System.out.println("los numeros son consecutivos!");
  53. }else
  54. {
  55. System.out.println("los no numeros son consecutivos!");
  56. }
  57. }
  58. }
  #3 (permalink)  
Antiguo 11/12/2016, 00:29
 
Fecha de Ingreso: abril-2016
Mensajes: 16
Antigüedad: 8 años
Puntos: 0
Respuesta: Verificar si un string tiene numeros consecutivos

Hola detective_jd, buenas noches, gracias por tu ayuda, pero el código que pegaste es igual al que deje acá para que lo revisaran, solo que, en vez de colocar 3 números al azar envío directamente un array de enteros, alguna otra idea? Gracias!
  #4 (permalink)  
Antiguo 14/12/2016, 06:35
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Verificar si un string tiene numeros consecutivos

Tengo una duda: has de comprobar que todos los números sean consecutivos o que al menos dos dígitos lo sean? Es decir, "1569" que te tendría que devolver?
__________________
Aviso: No se resuelven dudas por MP!
  #5 (permalink)  
Antiguo 20/12/2016, 15:54
Avatar de Tipdar  
Fecha de Ingreso: octubre-2005
Ubicación: Aquí y allá.
Mensajes: 323
Antigüedad: 18 años, 6 meses
Puntos: 7
Respuesta: Verificar si un string tiene numeros consecutivos

frank7751, no sé si ya has resuelto tu problema... de todos modos tengo aquí una posible solución. He tomado como base tu código y tu enunciado, dices que tienes una cadena, eso es lo que le paso al método, no un arreglo, y funciona:

Código:
	public boolean probarConsecutivos(String cadena) {
		if (cadena.length() == 1)
			return true;
		else if (cadena.isEmpty())
			return false;
		
		for (int i = 0; i < cadena.length() - 1; i++) {
			int valor1 = (int)cadena.charAt(i);
			int valor2 = (int)cadena.charAt(i + 1);
			
			if (valor1 + 1 != valor2)
				return false;
		}
		return true;		
	}
Tienes que tener en cuenta que esto solo funciona si la cadena va desde 1 hasta 9. Hasta pronto!
__________________
El último TipdaR

Etiquetas: consecutivos, numeros, string, verificar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:49.