meine Aufgabe ist es, ein Programm zu schreiben, um zu überprüfen, ob eine Eingabe-Zeichenfolge eine gültige Nummer ist. eine gültige Zahl ist eine Zahl mit oder ohne ein + oder - Vorzeichen und eine Dezimalzahl wie: (+1 -1 1.0 1.0000000000 -1.0 -1.000000000), aber wenn ich Dinge wie: (1.2.3) einsetze, funktioniert es. was mache ich falschWie mache ich meine zulässigen Eingaben strenger
import java.util.Scanner;
public class parseNum {
public static void main(String[] args) {
System.out.println("Please enter a number:");
Scanner input = new Scanner(System.in);
String inStr = input.nextLine();
int i;
String state = "start";
for (i=0; i<inStr.length(); i++) {
if (state.equals("start")) {
if (inStr.charAt(i) == '+' || inStr.charAt(i) == '-') {
state = "afterSign";
continue;
}
}
// i assume this is where i messed up
if(inStr.charAt(i) == ('.')){
if(inStr.charAt(i+1) >= '0' && inStr.charAt(i+1) <= '9'){
state = "accept";
continue;
}
else{
state = "reject";
break;
}
}
if (inStr.charAt(i) >= '0' && inStr.charAt(i) <= '9') {
state = "accept";
continue;
}
else {
state = "reject";
break;
}
}
if (state.equals("accept"))
System.out.println("Thank you");
else
System.out.println("Invalid input");
input.close();
}
}
JA !!! das hat viel geholfen –
Siehe http://stackoverflow.com/help/someone-answers – c0der