请问我该怎么判断有没有小数点呢?

因为要对不同的数据类型做不同的处理。比如对int型要干嘛干嘛,对double型要干嘛干嘛,但是输入的好像都是String啊

HUX布斯
浏览 91回答 3
3回答

慕桂英4014372

import java.util.Scanner;&nbsp;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("你输入的值有误");}}}&nbsp;以上的代码只是一个初形,如果你是想一次判断多个或者是判断完一个想接着判断下一个的话,就像楼上说的那样想将需要判断的值放进数组里,然后利用2层的for循环进行判断。说回这段代码,我想将输入的字符串赋给a,然后计算a的长度赋给b,在for循环里利用subString来对每一位进行截取,将每次截取到的字符利用equals来判断是否为".".如果是的话count就增加1,以此来计算"."一共出现了几次,如果没有出现过就判定为int类型,如果出现一次就判定为double类型,如果多于1次,就判定为输入有误。至于你说的判断完之后的后续操作就由你来写了。&nbsp;

慕妹3146593

如果是基本类型,使用typeof,例如:int i = 100;if(i typeof int) {...}如果是类类型,使用instanceof,例如:Float f = new Float("2.199");if(f instanceof Float) {...}

沧海一幻觉

用正则表达式吧,代码如下: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("输入不合法");}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java