je reçois ceInteger.parseInt() Substring nouvelle chaîne et le rendre Int
Exception dans le thread "principal" java.lang.NullPointerException à SwedishPersonalNumber. (ScanPersonalNumber.java:5) à
ScanPersonalNumber.main (ScanPersonalNumber.java:54)
Mon combat renvoie le getYearBorn. Mais je ne sais pas ce que Im faire mal. Je peux résoudre getYearBorn avec de la ficelle mais c'est un exercice donc J'ai besoin qu'il soit int.
import java.util.Scanner;
class SwedishPersonalNumber {
String personalNumber;
String personalNumberBorn = personalNumber.substring(0, 4);
String female = "Female";
String male = "Male";
// boolean isValid = true;
int yearBorn = Integer.parseInt(personalNumberBorn);
int getYearBorn() {
return yearBorn;
}
String getGender() {
if (personalNumber.charAt(10)%2 == 0) {
return female;
}
else
return male;
}
/*
boolean isValid() {}
*/
}
public class ScanPersonalNumber {
public static void main (String[] args) {
String scanPersonalNumber;
Scanner kb = new Scanner(System.in);
System.out.println("Enter your personalnumber likes this: 196112033581 ");
System.out.println("Now please enter your personalnumber");
scanPersonalNumber = kb.nextLine();
System.out.println("Your personalnumber is: "+ scanPersonalNumber);
SwedishPersonalNumber myPersonalNumber = new SwedishPersonalNumber();
myPersonalNumber.personalNumber = scanPersonalNumber;
kb.close();
System.out.println("Your birthyear is: "+ myPersonalNumber.getYearBorn());
System.out.println("You are: "+ myPersonalNumber.getGender());
}
}
personalNumber n'a pas été initialisé de manière lorsque vous utilisez la méthode .Substring(), votre compilateur ne peut pas effectuer la tâche , donc il retourne null. Vous devez exécuter la fonction .subString() après que le numéro personnel a été entré. – Sterls