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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Problemas con un break. AYUDA POR FAVOR!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problemas con un break. AYUDA POR FAVOR!  (Leído 2,164 veces)
chriwasch

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Problemas con un break. AYUDA POR FAVOR!
« en: 22 Diciembre 2013, 17:53 pm »

Hola! Estoy haciendo un ejercicio en el cual tengo un string (en este caso: "-5, 20, abc, -20, defg, 45ab67, 23") y tengo que devolver un int array solo con los numeros positivos del string.

lo primero que hice fue un metodo (istZiffer) para saber si un char es un digito (con digito me refiero a un numero).

despues hice otro metodo (subStrings) que primero separa los elementos del del string por cada ", " que haya y los meta en un string array. Despues el metodo va a coger cada elemento del string array y va a crear un char array con los caracteres del elemento. Despues se va a probar  con un for, caracter por caracter con el metodo istZiffer si es digito o no. Si no es digito, una variable boolean m que ya habia declarado antes, va a ser falsa y si si es digito la variable boolean m va a ser verdadera. Aqui es donde tengo el PROBLEMA: una vez que un solo caracter ya no sea digito, por lo tanto la vareable boolean m va a ser falsa, he puesto un if despues de esto, que si la variable m es falso entonces break. Aqui esperaría que se acabe el for y vaya al siguiente elemento del string array. Pero cuando corro el debug no hace esto sino que sigue el for (osea con el siguiente caracter del elemento en el que ya estabamos y como ya habia salido que una caracter no era cifra ya queria descartarlo y seguir con el siguiente elemento)

Talvez puse en el lugar incorrecto el break (aunque según yo no jaja) o no tenga que usar break sino otra cosa. Espero que alguien me pueda ayudar, gracias


PD: perdón que los nombres de las variables esten en alemán jaja.


Código
  1.  
  2.  
  3.  
  4. public class Aufgabe1 {
  5.  
  6. public static void main(String[] args) {
  7. // TODO Auto-generated method stub
  8.  
  9.  
  10. String zeichenkette = "-5, 20, abc, -20, defg, 45ab67, 23";
  11.  
  12. int [] subStrings = subStrings(zeichenkette);
  13.  
  14. for(int x=0; x<subStrings.length; x++){
  15. System.out.println(subStrings[x]);
  16. }
  17.  
  18. }
  19.  
  20.  
  21. public static boolean istZiffer(char ch){
  22. boolean b = Character.isDigit(ch);
  23. return b;
  24. }
  25.  
  26.  
  27.  
  28. public static int [] subStrings(String zeichenkette){
  29.  
  30. String[] elementen = zeichenkette.split(", ");
  31. boolean m;
  32. int a = 0;
  33. for(int x=0; x<=elementen.length-1; x++){
  34. char[] zeichen = elementen[x].toCharArray();  
  35. for(int z=0; z<=zeichen.length-1; z++){
  36. char zeich = zeichen[z];
  37. if(istZiffer(zeich)==false){
  38. m = false;
  39. }else{
  40. m = true;
  41. }
  42. if(m = false){
  43. break;
  44. }
  45. }
  46.  
  47. if(m = true){
  48. a++;
  49. }
  50. }
  51.  
  52. int [] subStrings = new int [a];
  53. int y = 0;
  54. for(int x=0; x<=elementen.length-1; x++){
  55. char[] zeichen = elementen[x].toCharArray();
  56. for(int z=0; z<=zeichen.length-1; z++){
  57. if(istZiffer(zeichen[z])==false){
  58. m = false;
  59. }else{
  60. m = true;
  61. }
  62. if(m = false){
  63. break;
  64. }
  65. }
  66. if(m = true){
  67. int zahl = Integer.parseInt(elementen[x]);
  68. subStrings[y] = zahl;
  69. y++;
  70. }
  71. }
  72. return subStrings;
  73. }
  74.  
  75.  
  76.  
  77. }


« Última modificación: 23 Diciembre 2013, 16:18 pm por Leyer » En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Problemas con un break. AYUDA POR FAVOR!
« Respuesta #1 en: 22 Diciembre 2013, 22:30 pm »

break sale del loop actual, pero el loop donde ejecutas el break esta dentro de otro loop que sigue ejecutándose.

Ejemplo:

Código
  1. public class ehn {
  2.  
  3.  
  4. public static void main(String args[]) {
  5.  
  6. for(int i = 0;i<10;i++) {
  7. System.out.println("Loop padre - Ejecucion #"+i);
  8.  
  9. for(int x = 0;x<10;x++) {
  10. System.out.println("\tLoop hijo - Ejecucion #"+x);
  11. break;
  12.  
  13. }
  14.  
  15.  
  16. }
  17. }
  18. }

Output:
Código:
Loop padre - Ejecucion #0
Loop hijo - Ejecucion #0
Loop padre - Ejecucion #1
Loop hijo - Ejecucion #0
Loop padre - Ejecucion #2
Loop hijo - Ejecucion #0
Loop padre - Ejecucion #3
Loop hijo - Ejecucion #0
Loop padre - Ejecucion #4
Loop hijo - Ejecucion #0
Loop padre - Ejecucion #5
Loop hijo - Ejecucion #0
Loop padre - Ejecucion #6
Loop hijo - Ejecucion #0
Loop padre - Ejecucion #7
Loop hijo - Ejecucion #0
Loop padre - Ejecucion #8
Loop hijo - Ejecucion #0
Loop padre - Ejecucion #9
Loop hijo - Ejecucion #0


Solucion

Código
  1. package main;
  2.  
  3.  
  4. public class ehn {
  5.  
  6.  
  7. public static void main(String args[]) {
  8.  
  9. padreLoop:
  10. for(int i = 0;i<10;i++) {
  11. System.out.println("Loop padre - Ejecucion #"+i);
  12.  
  13. for(int x = 0;x<10;x++) {
  14. System.out.println("\tLoop hijo - Ejecucion #"+x);
  15. break padreLoop;
  16.  
  17. }
  18.  
  19.  
  20. }
  21. }
  22. }

Output:
Código:
Loop padre - Ejecucion #0
Loop hijo - Ejecucion #0

Saludos.


En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
chriwasch

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Problemas con un break. AYUDA POR FAVOR!
« Respuesta #2 en: 23 Diciembre 2013, 16:24 pm »

Hola, gracias por la respuesta! Pero ya encontre mi error, el break estaba en el lugar correcto, pero en esta parte

    if(m = false){
               break;
            }

tenía que poner con doble igual

    if(m == false){
               break;
            }

y antes cuando declaro la variable boolean m, declararla como true.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problemas con DVD RW.Ayuda por favor
Software
Cubix 3 1,949 Último mensaje 8 Abril 2005, 05:03 am
por caraloca
Problemas en el pc ayuda por favor
Hardware
dekno83 3 2,191 Último mensaje 29 Mayo 2010, 19:01 pm
por Aprendiz-Oscuro
Problemas con a:visited.... ¬¬ ayuda por favor
Desarrollo Web
XXXXXX 2 2,338 Último mensaje 19 Junio 2010, 23:59 pm
por XXXXXX
problemas con svhost , por favor ayuda
Windows
robertofd1995 4 2,746 Último mensaje 3 Junio 2014, 19:16 pm
por el-brujo
AYUDA simulacion de un switch sin un break
Programación C/C++
mc275 4 2,712 Último mensaje 22 Septiembre 2016, 16:40 pm
por dato000
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines