在java中如何对输入的内容进行判断它是字符串还是整型?

2024年11月16日 03:18
有5个网友回答
网友(1):

import java.util.Scanner;

/*
 * 基本格式:
 * public boolean hasNextXxx():判断是否是某种类型的元素
 * public Xxx nextXxx():获取该元素
 * 
 * 举例:用int类型的方法举例
 * public boolean hasNextInt()
 * public int nextInt()
 * 
 * 注意:
 * InputMismatchException:输入的和你想要的不匹配
 */
public class ScannerDemo {
public static void main(String[] args) {
// 创建对象
Scanner sc = new Scanner(System.in);

// 获取数据
if (sc.hasNextInt()) {
int x = sc.nextInt();
System.out.println("x:" + x);
} else {
System.out.println("你输入的数据有误");
}
}
}
分享

网友(2):

算了用Hashtable来实现你这个问题,同时用正则表达式验证是否为数字

import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Scanner;

public class HashTest {

/**
* @param args
* @throws UnsupportedEncodingException
*/
public static void main(String[] args) {
System.out.println("请输入你要借的名称或序号");
Scanner sc = new Scanner(System.in);
String choice = sc.next();
Hashtable ht = new Hashtable();
ht.put(11, "数学");
ht.put(2, "语文");
ht.put(13, "历史");
ht.put(4, "政治");
ht.put(25, "化学");
System.out.println(judge(ht,choice));
}
public static String judge(Hashtable ht,String choice){
Enumeration en = ht.keys();
String str=null;
String error="对不起,没有找到你要借的名称或序号!!!";
while (en.hasMoreElements()) {
Object key_num = en.nextElement();
if (choice.matches("^\\d+$")&&key_num.equals(Integer.valueOf(choice))) {
str="你要借的书是:"+key_num;
break;
}
if (ht.get(key_num).equals(choice)) {
str="你要借的书是:"+ht.get(key_num);
break;
}
}
return str==null?error:str;
}
}

网友(3):

用String接受值,然后
for(int i=0;i if(choice.equals(name[i])) {
System.out.println("你要借的名称是:"+choice);
}else if(chice.equals(NO[i]+"")){
System.out.println("你要借的序号是:"+NO); }
else{
System.out.println("没有你要找的序号!")
}
}
如果非要判断是否是数字,可以用String接受下来之后用正则表达式来判断

if(!choice.matches("\\d+?")){

//非数字
}else{
//数字
}

网友(4):

java从cmd接受的输入都是String的。当具体到你需要什么类型时,需要你自己对其转换啦!
String context=输入
int integer=Integer.valuesOf(context);
double d=Double.valuesOf(context);
......
诸如此类。

网友(5):

楼上正解,都用String吧,要不就别把名称和序号放一起输入,前面先让用户做判断是输入名称还是序号。