Cela devrait fonctionner à votre objectif:
import java.util.Scanner;
public class DataType
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
if(in.hasNextByte(2))
System.out.println("Byte");
else if(in.hasNextInt())
System.out.println("Integer");
else if(in.hasNextFloat())
System.out.println("Float");
else if(in.hasNextBoolean())
System.out.println("Boolean");
else if(in.hasNext())
System.out.println("String");
}
}
Notez que l'ordre des if...else
déclarations est ici très important en raison des relations d'ensemble suivantes en ce qui concerne les modèles:
- Tous les modèles d'octets peuvent être des entiers
- Tous les modèles entiers peuvent être flotteurs
- Tous les modèles flottants peuvent être des chaînes
- Tous les booléens peuvent être des chaînes
Il y a pas mal de hasNext..()
méthodes dans la classe Scanner
, tels que BigInteger
, short
, etc. Vous pouvez consulter la documentation de la classe Scanner pour plus de détails.
Rechercher les données d'analyse de la chaîne – GurV
Copie possible de [Vérification du type d'entrée ... comment?] (Http://stackoverflow.com/questions/5333110/checking-input-type-how) –
[This answer answer] (http://stackoverflow.com/a/40062753/2449857) montre exactement comment faire cela. –