2012-12-05 7 views
-4

Je me demande si quelqu'un pouvait me montrer un peu de code à la façon dont je mettrais cette chaîne dans un tableau booléen 2D et l'imprimerchaîne Mettre en 2D booléenne tableau Java

Exemple: « 0-1 0- 2 1-2 1-3 2-3 ", mais la chaîne pourrait être plus compliquée comme ceci" 0-1 1-2 2-3 3-0 0-4 0-11 1-5 1-6 2-7 2 09/03 10/03 05/04 -8 6-7 8-9 10-11 4-7 4-8 5-9 5-10 6-9 6-10 7-11 8-11"

An exemple serait 0-1 est vrai, 0-2 est vrai, 1-2 est vrai, 1-3 est vrai, 2-3 est vrai, tous les autres postions devraient être faux

+1

[Qu'avez-vous essayé?] (Http://www.whathaveyoutried.com/) –

+0

BTW - De quelle manière en entier comme '' 11' Traduire en boolean'? –

+0

Ma meilleure estimation est que chaque 0-1 ou 0-2 est une position dans le tableau 2d? Alors ces positions sont vraies? Mais quelques éclaircissements seraient bien. – Clark

Répondre

1

Je ne sais pas ce que vous dire en les mettant dans un 2D boolean tableau. Si vous avez des problèmes avec l'analyse du texte, voici un extrait de code que vous pouvez utiliser.

Pour la première solution, je suppose que les nombres viennent toujours par paires et sont séparés par un -, et l'espace est utilisé pour délimiter entre les paires de nombres.

Utilisez cette option si vous lisez l'entrée standard:

Scanner scanner = new Scanner(System.in); 

Utilisez cette option si vous avez un String contient tous les numéros et que vous voulez le traiter (laisser le nom de la variable est inputString):

Scanner scanner = new Scanner(inputString); 

Ensuite, vous pouvez lire les chiffres de l'entrée:

while (scanner.hasNext()) { 
    String pair = scanner.next(); 
    // Split by the hyphen 
    String tokens[] = pair.split("-"); 

    // Normally, one should check the array before accessing it 
    // I currently assume the input is valid 
    int first = Integer.parseInt(tokens[0]); 
    int second = Integer.parseInt(tokens[1]); 

    // Do whatever you want with the 2 numbers extracted 
} 

Vous pouvez également utiliser useDelimiter ajouter - comme séparateur et utiliser nextInt pour lire le numéro sans avoir à traiter avec - séparément:

scanner.useDelimiter("[\\p{javaWhitespace}-]+"); 

Le code devient simplement:

scanner.useDelimiter("[\\p{javaWhitespace}-]+"); 

while (scanner.hasNext()) { 
    int first = scanner.nextInt(); 
    int second = scanner.nextInt(); 

    // Do whatever you want with the 2 numbers extracted 
} 

Le code est plus propre, mais si - apparaissent entre first et second, ou combien de - apparaissent, o r est-ce le seul caractère entre la paire de nombres n'est pas connu maintenant. C'est OK si nous supposons que le format d'entrée est correct. Cependant, si cette hypothèse n'est pas donnée, nous ne pouvons effectuer aucune validation d'entrée.