2017-06-17 1 views
1
import java.util.*; 

class Player { 
    public static void main (String [] args) { 
     String number = Text.nextLine 
    } 
} 

Je veux l'entrée utilisateur de cette classe et mettre dans une autre classe et utiliser la variable numéro un Si la déclarationComment pourrais-je obtenir une chaîne d'une autre classe?

+0

Veuillez fournir plus d'informations. – Blasanka

+0

'Text' semble être une classe et' nextLine' est une variable membre, n'est-ce pas? Si c'est où avez-vous initialisé l'objet? ou est-ce '' Scanner' class 'nextLine()'? – Blasanka

+0

Oui, j'utilise un scanner et oui –

Répondre

1

Je veux l'entrée utilisateur de cette classe et mettre dans une autre classe et utiliser la variable numéro pour une instruction If.

Il est simple jeter un oeil à exemple ci-dessous (assurez-vous d'ajouter les deux classes dans un package différents fichiers java comme Player.java et ExampleClass.java),

C'est la classe qui a Scanner:

import java.util.*; 

public class Player{ 
    public static void main (String [] args){ 

     Scanner getInput = new Scanner(System.in); 
     System.out.print("Input a number"); 
     //you can take input as integer if you want integer value by nextInt() 
     String number = getInput.nextLine(); 

     ExampleClass obj = new ExampleClass(number); 
     obj.checkMethod(); 
    } 
} 

Ceci est la classe numéro de chèque:

public class ExampleClass{ 
    int number; 
    public ExampleClass(String number){ 
     try{ 
      //If you want to convert into int 
      this.number = Integer.parseInt(number); 
     }catch(NumberFormatException e){ 
      System.out.println("Wrong input"); 
     } 
    } 

    public void checkMethod(){ 
     if(number > 5){ 
      System.out.println("Number is greater."); 
     }else{ 
      System.out.println("Number is lesser."); 
     } 
    } 
} 

Peu chose à mentionner:

Votre code exemple contient des erreurs de syntaxe, fixer les premiers.

  1. Si vous voulez entier, vous pouvez utiliser getInput.nextInt() plutôt que getInput.nextLine().
  2. Vous pouvez créer un getter et des setters pour définir des valeurs et obtenir des valeurs. Dans mon exemple, je ne fais que définir la valeur à travers le constructeur.
  3. Utiliser la convention de dénomination appropriée.
  4. Dans mon exemple, je convertir le String en entier à l'intérieur du constructeur et enveloppent de try - bloc catch pour éviter de NumberFormatException (Si votre personnage entrée ou quelque chose que vous pouvez voir wrong input imprimera). Parfois, en situation de variaus, il n'est pas bon d'utiliser try - catch dans le constructeur. Pour en savoir plus à ce sujet, veuillez lire le Try/Catch in Constructor - Recommended Practice.
0

Si vous faites normalement une importation de l'autre classe, importer juste la classe du joueur et ça devrait fonctionner

0

Je ne sais pas si je l'ai eu, je suppose que vous utilisez un scanner. Ce est la façon dont je le ferais:

classe Scanner:

public class ScannerTest { 

    public static void main(String[] args) { 

     Scanner scanner = new Scanner(System.in); 

     while (true) { 
      System.out.println("Insert a decimal:"); 
      String inputValue = scanner.nextLine(); 
      if(!new ScannerCalc().isNumeric(inputValue)){ 
       System.out.println("it's not a number..."); 
       break; 
      } 
      else 
       new ScannerCalc().checkNumber(inputValue); 
     } 
    } 
} 

classe ScannerCalc:

public class ScannerCalc { 

    public boolean isNumeric(String s) { 
     return s != null && s.matches("[-+]?\\d*\\.?\\d+"); 
    } 

    public void checkNumber(String number){ 

     if(Integer.parseInt(number)%2==0) 
      System.out.println("it' even"); 
     else 
      System.out.println("it's odd"); 

    } 
} 

Faites attention sur instanciation des classes à réutiliser les méthodes.

0

Si vous souhaitez utiliser une variable locale dans une autre entité, il est préférable de la passer en argument à une méthode de l'autre entité. Par exemple

OtherClass.operation(scanner.nextLine()); // In case method is static 

new OtherClass().operation(scanner.nextLine()); // In case method is not static