Hej,
Potrzebuje pomocy. Napisałem taki kod i nie do końca wiem, dlaczego to mi nie działa i nie przeskakuje dalej. Kolejny problem to, że jak stworzyłem nowy String to nie za bardzo wiem jak przypisać nową zmienną name albo int do pierwszego obiektu. Ktoś pomoże ? : )
package com.company;
import java.util.Scanner;
import java.util.regex.Pattern;
import static java.util.regex.Pattern.matches;
public class Main {
public static void main(String[] args) {
Person person1 = new Person();
Person person2 = new Person();
Scanner sc1 = new Scanner(System.in);
// 1 Person nmae
System.out.println("Enter a name: ");
String name;
boolean valid = true;
do {
name = sc1.next();
if (checkName(name))
{
valid = false;
person1.setName(sc1.nextLine());
}
else
{
System.out.println("Enter your name again");
}
}
while (valid);
// 2 Person age
System.out.println("Enter an age");
String age;
boolean x = true;
do {
age = sc1.nextLine();
if (checkAge(age))
{
x = false;
}
else
{
System.out.println("Enter your age again");
}
} while (x);
person1.setAge(Integer.valueOf(age));
System.out.println("Enter a name: ");
person2.setName(sc1.nextLine());
System.out.println("Enter an age");
person2.setAge(Integer.valueOf(sc1.nextLine()));
System.out.println("you should of typed number");
if (person1.getAge() > person2.getAge())
{
System.out.println(person1.getName() + "is older and was born" + (2019-person1.getAge()));
}
else if (person1.getAge() < person2.getAge())
{
System.out.println(person2.getName() + "is older and was born" + (2019-person2.getAge()));
}
else {
System.out.println(person1.getName() + "and" + person2.getName() + "have the same age and were born" + (2019 - person1.getAge()));
}
}
public static class Person{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public static boolean checkName(String name) {
return Pattern.matches("[a-zA-Z]", name);
}
public static boolean checkAge(String age) {
return Pattern.matches("\\d", age);
}
}