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("你输入的数据有误");
}
}
}
分享
算了用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.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
Enumeration
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;
}
}
用String接受值,然后
for(int i=0;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{
//数字
}
java从cmd接受的输入都是String的。当具体到你需要什么类型时,需要你自己对其转换啦!
String context=输入
int integer=Integer.valuesOf(context);
double d=Double.valuesOf(context);
......
诸如此类。
楼上正解,都用String吧,要不就别把名称和序号放一起输入,前面先让用户做判断是输入名称还是序号。