2017-08-22 3 views
0
import java.util.Scanner; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

public class StringInteger { 

    public static void main(String[] args) { 
     System.out.println("Enter no. of times input numbers will be given : "); 
     Scanner sc = new Scanner(System.in); 
     int n = sc.nextInt(); 
     int index = 0, index1 = 0; 
     int girl[] = new int[1000]; 
     int boy[] = new int[1000]; 
     for (int i = 1; i <= n; i++) { 
      String s = sc.next(); 
      Pattern mypattern = Pattern.compile("[0-9]+"); 
      Matcher mymatcher = mypattern.matcher(s); 
      while (mymatcher.find()) { 
       if (i % 2 != 0) { 
        girl[index] = Integer.valueOf(mymatcher.group()); 
        index++; 
       } else { 
        boy[index1] = Integer.valueOf(mymatcher.group()); 
        index1++; 
       } 
      } 
     } 
     for (int j = 0; j < index; j++) { 
      System.out.print(girl[j] + " "); 
     } 
    } 
} 

Pourquoi la boucle ne fonctionne-t-elle pas jusqu'à sa limite?La boucle java regex ne fonctionne pas correctement

+2

Pouvez-vous ajouter une brève description de ce code est censé faire? –

+0

Aussi ce qu'il fait réellement. – shmosel

+0

* jusqu'à sa limite *? Quelle est la sortie que vous obtenez et quelle est la sortie que vous attendez? – Blasanka

Répondre

0

Pour boucle fonctionne correctement pour le no. de fois, c'est-à-dire n.

Vous devez formater votre code, le nom de classe Java doit être CamelCase et sans soulignement et ajouter System.out.println pour vous aider à comprendre le débogage et le programme est logique.

Il semble que votre programme attend un numéro pour lequel l'utilisateur peut saisir des nombres.

Il existe 2 réseaux, à savoir fille et garçon. Si le nombre est impair, alors il est ajouté au tableau fille et si le nombre est pair, il est ajouté au tableau garçon.

Enfin tableau fille est imprimé.

import java.util.Scanner; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

public class StringInteger { 

    public static void main(String[] args) { 
     System.out.println("Enter no. of times input numbers will be given : "); 
     Scanner sc = new Scanner(System.in); 
     int n = sc.nextInt(); 
     int index = 0, index1 = 0; 
     int girl[] = new int[1000]; 
     int boy[] = new int[1000]; 
     for (int i = 1; i <= n; i++) { 
      String s = sc.next(); 
      Pattern mypattern = Pattern.compile("[0-9]+"); 
      Matcher mymatcher = mypattern.matcher(s); 
      while (mymatcher.find()) { 
       if (i % 2 != 0) { 
        girl[index] = Integer.valueOf(mymatcher.group()); 
        index++; 
       } else { 
        boy[index1] = Integer.valueOf(mymatcher.group()); 
        index1++; 
       } 
      } 
     } 
     for (int j = 0; j < index; j++) { 
      System.out.print(girl[j] + " "); 
     } 
    } 
} 

Sample Run:

Enter no. of times input numbers will be given : 
4 
10 
11 
12 
13 
10 12