在java中如何对输入的内容进行判断它是字符串还是整型?
如“图书管理系统”中我想问的是:用什么条件来判断下面的情形,请高手指点!intNO[]=newint[100000];Stringname[]=newString[100...
如“图书管理系统”中
我想问的是:用什么条件来判断下面的情形,请高手指点!
int NO[]=new int[100000];
String name[]=new String[100000];
System.out.println("请输入你要借的名称或序号");
???(不知道该用什么类型) choice=input.???(不知道该用什么类型)();
if(如果这里是名称时){
for(int i=0;i<name.length;i++){
if(choice.equals(name[i]))
System.out.println("你要借的名称是:"+choice);
else
System.out.println("没有你要找的名称!");
}else if(如果这里是序号时){
for(int i=0;i<NO.length;i++){
if(choice==NO[i]))
System.out.println("你要借的序号是:"+NO);
else
System.out.println("没有你要找的序号!")
}
} 展开
我想问的是:用什么条件来判断下面的情形,请高手指点!
int NO[]=new int[100000];
String name[]=new String[100000];
System.out.println("请输入你要借的名称或序号");
???(不知道该用什么类型) choice=input.???(不知道该用什么类型)();
if(如果这里是名称时){
for(int i=0;i<name.length;i++){
if(choice.equals(name[i]))
System.out.println("你要借的名称是:"+choice);
else
System.out.println("没有你要找的名称!");
}else if(如果这里是序号时){
for(int i=0;i<NO.length;i++){
if(choice==NO[i]))
System.out.println("你要借的序号是:"+NO);
else
System.out.println("没有你要找的序号!")
}
} 展开
6个回答
2015-11-30 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
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<Integer, String> ht = new Hashtable<Integer, String>();
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<Integer, String> ht,String choice){
Enumeration<Integer> 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;
}
}
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<Integer, String> ht = new Hashtable<Integer, String>();
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<Integer, String> ht,String choice){
Enumeration<Integer> 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;
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用String接受值,然后
for(int i=0;i<name.length;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{
//数字
}
for(int i=0;i<name.length;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{
//数字
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java从cmd接受的输入都是String的。当具体到你需要什么类型时,需要你自己对其转换啦!
String context=输入
int integer=Integer.valuesOf(context);
double d=Double.valuesOf(context);
......
诸如此类。
String context=输入
int integer=Integer.valuesOf(context);
double d=Double.valuesOf(context);
......
诸如此类。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上正解,都用String吧,要不就别把名称和序号放一起输入,前面先让用户做判断是输入名称还是序号。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询