java 中如何判断输入的是int还是double

因为要对不同的数据类型做不同的处理。比如对int型要干嘛干嘛,对double型要干嘛干嘛,但是输入的好像都是String,怎么判断有没有小数点呢?... 因为要对不同的数据类型做不同的处理。比如对int型要干嘛干嘛,对double型要干嘛干嘛,但是输入的好像都是String,怎么判断有没有小数点呢? 展开
 我来答
muse4498
2018-04-16 · TA获得超过1.1万个赞
知道小有建树答主
回答量:55
采纳率:95%
帮助的人:1万
展开全部

你可以用一个字符串来保存你的输入,然后你可以将输入利用String类库中的函数进行转换,或者利用contains()函数看,是否还有小数点。

System.out.println("please input the ten strings:");

Scanner sc = new Scanner(System.in);

String number = sc.nextLine();

if(number.contains(".")){

//说明是一个小数

double d = Double.valueOf(s);

}

else{

//

int i = Integer.valueOf(s);

}

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

woyaoaiaia
2010-09-12 · TA获得超过764个赞
知道小有建树答主
回答量:479
采纳率:0%
帮助的人:162万
展开全部
import java.util.Scanner;
public class L
{
public static void main(String args[])
{
Scanner input=new Scanner(System.in);
System.out.println("请输入:");
String a=input.next();
int b=a.length(),c,count=0;
for(c=0;c<b;c++){
String d=a.substring(c,c+1);
if(d.equals(".")){
count++;
}
}
if(count==0){
System.out.println("你输入的是int类型的值");
}
else if(count==1){
System.out.println("你输入的是double类型的值");
}
else{
System.out.println("你输入的值有误");
}
}
}

以上的代码只是一个初形,如果你是想一次判断多个或者是判断完一个想接着判断下一个的话,就像楼上说的那样想将需要判断的值放进数组里,然后利用2层的for循环进行判断。说回这段代码,我想将输入的字符串赋给a,然后计算a的长度赋给b,在for循环里利用subString来对每一位进行截取,将每次截取到的字符利用equals来判断是否为".".如果是的话count就增加1,以此来计算"."一共出现了几次,如果没有出现过就判定为int类型,如果出现一次就判定为double类型,如果多于1次,就判定为输入有误。至于你说的判断完之后的后续操作就由你来写了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
千锋教育
2015-12-07 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
如果是基本类型,使用typeof,例如:
int i = 100;
if(i typeof int) {
...
}

如果是类类型,使用instanceof,例如:
Float f = new Float("2.199");
if(f instanceof Float) {
...
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
skr86love
2010-09-12 · TA获得超过253个赞
知道小有建树答主
回答量:124
采纳率:100%
帮助的人:88.6万
展开全部
用正则表达式吧,代码如下:
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class MatcherTest {
private static final String ISINTEGER="^[1-9][0-9]+$";
private static final String ISDOUBLE="^[1-9][0-9]+[.][0-9]+[1-9]$";
public static void main(String[] args)throws Exception {
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
String s=input.readLine();
if(s.matches(ISINTEGER))System.out.println("是整数");
else if(s.matches(ISDOUBLE))System.out.println("是小数");
else System.out.println("输入不合法");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0f39ceb
2010-09-12 · TA获得超过782个赞
知道小有建树答主
回答量:323
采纳率:0%
帮助的人:458万
展开全部
感觉可以这样:
用String类的toCharArray(),将字符串转化成字符数组,用for遍历数组看有没有字符'.',如果有则为浮点型,没有则为整型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式