Ihre Herausforderung besteht darin, festzustellen, ob die angegebene Eingabe eine Ganzzahl, eine Zeichenfolge oder eine Dezimalzahl ist.
Regeln
- Eine Zeichenfolge ist eine Eingabe, die keine Ganzzahl oder Gleitkommazahl ist
- Eine Ganzzahl darf nur numerische Zeichen enthalten und darf nicht mit einer Null beginnen
- Eine Dezimalstelle ist eine Eingabe, die den Punkt (
.) enthält, und der Punkt ist von numerischen Zeichen umgeben.
Hinweis: .01 wird nicht als gültige Dezimalzahl betrachtet.
- Das Programm sollte eine Rohzeichenfolge entweder "Zeichenfolge", "Ganzzahl" oder "Dezimalzahl" ausgeben.
- Sie können davon ausgehen, dass nur druckbare ASCII-Zeichen verwendet werden
Fälle:
asdf -> string
asdf3.4 -> string
2 -> integer
2.0 -> decimal
02 -> string
40. -> string
. -> string
.01 -> string
0.0 -> decimal
.9.9.9 -> string
[empty space] -> string
EDIT: Tippfehler behoben. Ich meinte 0,01 ohne die führende Null, nicht mit. Wenn das es unklar machte, ist es jetzt behoben!
Dies ist Code-Golf , also gewinnt die kürzeste Antwort.
02wird nicht als Ganzzahl betrachtet, da die meisten Sprachen führende Nullen kürzen, wenn der Typ ein ist, integeraber führende Nullen behalten, wenn er als gespeichert wird string. Obwohl ich mit @isaacg bin 0.0, 0.01sollte es auch sein, wenn dies als Dezimalzahl betrachtet wird . .01Nicht zählen macht Sinn, denke ich ...