java输入语句 Java编译器
老铁们,大家好,相信还有很多朋友对于java输入语句和Java编译器的相关问题不太懂,没关系,今天就由我来为大家分享分享java输入语句以及Java编译器的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
java键盘输入语句怎么写
程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这种情况我们就束手无策,请你看以下三种解决方法吧:
以下将列出几种方法:
方法一:从控制台接收一个字符,然后将其打印出来
public static void main(String [] args) throws IOException{
System.out.print(“Enter a Char:”);
char i=(char) System.in.read();
System.out.println(“your char is:”+i);
}
}
虽然此方式实现了从键盘获取输入的字符,但是System.out.read()只能针对一个字符的获取,同时,获取进来的变量的类型只能是char,当我们输入一个数字,希望得到的也是一个整型变量的时候,我们还得修改其中的变量类型,这样就显得比较麻烦。
方法二:从控制台接收一个字符串,然后将其打印出来。在这个题目中,我们需要用到BufferedReader类和InputStreamReader类
public static void main(String [] args) throws IOException{
BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
String str= null;
System.out.println(“Enter your value:”);
str= br.readLine();
System.out.println(“your value is:”+str);
}
这样我们就能获取我们输入的字符串。
方法三:这种方法我认为是最简单,最强大的,就是用Scanner类
public static void main(String [] args){
Scanner sc= new Scanner(System.in);
System.out.println(“请输入你的姓名:”);
String name= sc.nextLine();
System.out.println(“请输入你的年龄:”);
int age= sc.nextInt();
System.out.println(“请输入你的工资:”);
float salary= sc.nextFloat();
System.out.println(“你的信息如下:”);
System.out.println(“姓名:”+name+“
”+“年龄:”+age+“
”+“工资:”+salary);
}
java如何输入一个整数
可以通过”Scanner“函数直接输入参数的形式,来实现输入语句,举例:\x0d\x0aimport java.util.Scanner;\x0d\x0apublic class Test{\x0d\x0apublic static void main(String[] args){\x0d\x0aScanner input=new Scanner(System.in);\x0d\x0aSystem.out.println("请输入一个整数:");\x0d\x0aint length=input.nextInt();//输入一个整数\x0d\x0aSystem.out.println("输入的整数是:"+length);}\x0d\x0a}\x0d\x0a备注:Scanner函数就是用来进行语句输入的,上面举例的是整数类型,也可以用以下语句“String length=input.next()”,输入的就是字符串类型等。\x0d\x0a判断是否为整数的方法:\x0d\x0a方法一\x0d\x0apackage homeWork;\x0d\x0a\x0d\x0a\x0d\x0aimport java.io.BufferedReader;\x0d\x0aimport java.io.IOException;\x0d\x0aimport java.io.InputStreamReader;\x0d\x0a\x0d\x0a\x0d\x0apublic class Test2{\x0d\x0a\x0d\x0a\x0d\x0apublic static void main(String[] args){\x0d\x0aBufferedReader bReader= null;\x0d\x0abReader= new BufferedReader(new InputStreamReader(System.in));\x0d\x0atry{\x0d\x0aString line= null;\x0d\x0aint sum= 0;\x0d\x0afor(int i= 0; i< 2; i++){\x0d\x0aSystem.out.println("请输入第"+(i+ 1)+"整数");\x0d\x0a//获取键盘输入的数据\x0d\x0aline= bReader.readLine();\x0d\x0a//判断是否是数字\x0d\x0aif(line.matches("[0-9]+")){\x0d\x0a//将数字字符串转成Integer类型\x0d\x0asum+= Integer.parseInt(line);\x0d\x0a} else{\x0d\x0ai--;\x0d\x0acontinue;\x0d\x0a}\x0d\x0a}\x0d\x0aSystem.out.println(sum);\x0d\x0a\x0d\x0a\x0d\x0a} catch(IOException e){\x0d\x0a// TODO Auto-generated catch block\x0d\x0ae.printStackTrace();\x0d\x0a}\x0d\x0a\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a//方法二\x0d\x0apackage homeWork;\x0d\x0a\x0d\x0a\x0d\x0aimport java.io.BufferedReader;\x0d\x0aimport java.io.IOException;\x0d\x0aimport java.io.InputStreamReader;\x0d\x0a\x0d\x0a\x0d\x0apublic class Test3{\x0d\x0a\x0d\x0a\x0d\x0apublic static void main(String[] args){\x0d\x0aint sum= 0;\x0d\x0aint count= 0;\x0d\x0aString line= null;\x0d\x0aBufferedReader bReader= null;\x0d\x0ado{\x0d\x0aSystem.out.println("请输入第"+(count+ 1));\x0d\x0a//创建缓冲字符输入流,从键盘输入数据\x0d\x0abReader= new BufferedReader(new InputStreamReader(System.in));\x0d\x0atry{\x0d\x0a//获取数据\x0d\x0aline= bReader.readLine();\x0d\x0a//判断是否是整数\x0d\x0aif(line.matches("[0-9]+")){\x0d\x0asum+= Integer.parseInt(line);\x0d\x0acount++;\x0d\x0a}\x0d\x0a} catch(IOException e){\x0d\x0a// TODO Auto-generated catch block\x0d\x0ae.printStackTrace();\x0d\x0a}\x0d\x0a//判断数据个数是否满足需求\x0d\x0a} while(count< 2);\x0d\x0aSystem.out.println("两个整数之和为:"+ sum);\x0d\x0atry{\x0d\x0aif(bReader!= null){\x0d\x0abReader.close();\x0d\x0a}\x0d\x0a} catch(IOException e){\x0d\x0a\x0d\x0a\x0d\x0ae.printStackTrace();\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0a\x0d\x0a}
Java输入问题
先说一下为什么会出现这种情况。
第一点,请记住你在 System.in中输入的任何东西(包括空格回车等)都是字符(char),比如你输入了 1,这个是字符的'1',而不是 1这个整数。只有经过一些方法的修改后(比如 Integer.parseInt()),这个字符'1'才会变成真正的整数 1。
另外,在 Java中,每个字符都有其一个对应的整数值,也就是 ASCII码表中的对应数值,比如字符'1'对应的整数是 49,字符'
'对应的整数是 13,字符'-'对应的整数是 45。你可以看一下下面的ASCII码表寻找对应的关系(图中的 Carriage Return即为回车,也就是 Java中的'
')。
现在看题主所用的 BufferedReader的 read()方法。这个方法会返回一个整数,但这个整数并不是你输入的那个整数,而是输入流中的下一个字符在 ASCII码表中的整数值。你首先用了
num1=input.read();也就是说 num1是 input所代表的输入流(也就是标准输入 System.in)中的下一个字符在 ASCII码表中的整数值。这时你在屏幕上输入了 1并按了回车,这就相当于在标准输入 System.in中输入了
"1
"这个字符串。它由两个字符'1'和'
'组成,在 ASCII码表中的值分别为 49和 13。因为 num1是下一个字符,也就是'1',所以 num 1的值就是 49。
然后你又读取了 num 2,仍然以
num2=input.read();的方法,这时 input中没有读取的还有一个字符'
',所以系统不会让你再次输入,而是直接读取了这个'
'并把它代表的整数值 13赋给了 num2。所以 num2现在就是 13。
这样两数相加就是 62了。
你后面的几个输入都可以根据 ASCII码表这么看,比如输入了-1回车,这个字符串就由'-','1','
'三个字符组成,num1读取了第一个'-',也就是对应的 ASCII码值 45,num2读取了第二个'1',也就是对应的 ASCII码值 49,那么两数相加自然就是 94了。
至于修改方法,另外两位已经说得很详细了,可以用 BufferedReader的 readLine()或者 Scanner的 nextInt()方法。要注意的就是 readLine()方法读取的是一个字符串,要用 Integer.parseInt()方法来将它转换为整数。
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!