- 浏览: 77189 次
- 性别:
- 来自: 深圳
文章分类
最新评论
Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这种情况我们就束手无策,请你看以下三种解决方法吧:
以下将列出几种方法:
方法一:从控制台接收一个字符,然后将其打印出来
import java.io.*;
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类
import java.io.*;
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类
import java.util.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+"\n"+"年龄:"+age+"\n"+"工资:"+salary);
}
这段代码已经表明,Scanner类不管是对于字符串还是整型数据或者float类型的变量,只需做一点小小的改变,就能够实现功能!无疑他是最强大的!
但是,在使用第三种输入方法的时候有一个需要注意的地方,就是nextLine()函数,在io包中有一个和他功能一样的函数我next()函数,他们的功能一样,但是在实现上有什么差别呢,请看下面代码:
public static void main(String [] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的年龄:");
int age = sc.nextInt();
System.out.println("请输入你的姓名:");
String name = sc.nextLine();
System.out.println("请输入你的工资:");
float salary = sc.nextFloat();
System.out.println("你的信息如下:");
System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);
}
这段代码和上边第三种实现输入方法给出的例子代码区别在于,这段代码先执行nextInit()再执行nextLine(),而第三种方法的例子是先执行nextLine(),再执行nextInit(),当你在运行着两段代码的时候你会发现第三种方法的例子可以实现正常的输入,而这段代码却在输入年龄,敲击enter键后,跳过了输入姓名,直接到了输入工资这里,(可以自己运行代码看看)这是为什么呢?其实,在执行nextInit()函数之后,敲击了enter回车键,回车符会被nextLine()函数吸收,实际上是执行了nextLine()函数吸收了输入的回车符(并不是没有执行nextLine函数),前面讲到和nextLine()功能一样的函数next(),他们的区别就在于:next()函数不会接收回车符和tab,或者空格键等,所以在使用nextLine()函数的时候,要注意敲击的回车符有个被其吸收,导致程序出现BUG!!!
最后小小的总结一下next()和nextLine()的区别:
在java中,next()方法是不接收空格的,在接收到有效数据前,所有的空格或者tab键等输入被忽略,若有有效数据,则遇到这些键退出。nextLine()可以接收空格或者tab键,其输入应该以enter键结束。
以下将列出几种方法:
方法一:从控制台接收一个字符,然后将其打印出来
import java.io.*;
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类
import java.io.*;
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类
import java.util.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+"\n"+"年龄:"+age+"\n"+"工资:"+salary);
}
这段代码已经表明,Scanner类不管是对于字符串还是整型数据或者float类型的变量,只需做一点小小的改变,就能够实现功能!无疑他是最强大的!
但是,在使用第三种输入方法的时候有一个需要注意的地方,就是nextLine()函数,在io包中有一个和他功能一样的函数我next()函数,他们的功能一样,但是在实现上有什么差别呢,请看下面代码:
public static void main(String [] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的年龄:");
int age = sc.nextInt();
System.out.println("请输入你的姓名:");
String name = sc.nextLine();
System.out.println("请输入你的工资:");
float salary = sc.nextFloat();
System.out.println("你的信息如下:");
System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);
}
这段代码和上边第三种实现输入方法给出的例子代码区别在于,这段代码先执行nextInit()再执行nextLine(),而第三种方法的例子是先执行nextLine(),再执行nextInit(),当你在运行着两段代码的时候你会发现第三种方法的例子可以实现正常的输入,而这段代码却在输入年龄,敲击enter键后,跳过了输入姓名,直接到了输入工资这里,(可以自己运行代码看看)这是为什么呢?其实,在执行nextInit()函数之后,敲击了enter回车键,回车符会被nextLine()函数吸收,实际上是执行了nextLine()函数吸收了输入的回车符(并不是没有执行nextLine函数),前面讲到和nextLine()功能一样的函数next(),他们的区别就在于:next()函数不会接收回车符和tab,或者空格键等,所以在使用nextLine()函数的时候,要注意敲击的回车符有个被其吸收,导致程序出现BUG!!!
最后小小的总结一下next()和nextLine()的区别:
在java中,next()方法是不接收空格的,在接收到有效数据前,所有的空格或者tab键等输入被忽略,若有有效数据,则遇到这些键退出。nextLine()可以接收空格或者tab键,其输入应该以enter键结束。
发表评论
-
151多线程(优先级&yield方法)
2015-10-28 11:16 690/* 养成习惯:数据共享用静态 */ class Dem ... -
150_多线程(Join方法)
2015-10-27 18:31 603/* join: 当A线程执行到了B线程的join方法 ... -
114_面向对象(多异常处理)_黑马程序员_Java基础视频
2015-10-25 23:27 690/* 对多异常的处理 1.生命异常时,建议声明更为具体的异 ... -
113_面向对象(异常声明throws)_黑马程序员_Java基础视频
2015-10-25 23:26 479/* 异常:就是程序在运行时出现不正常情况 异常由来:问题 ... -
112_面向对象(异常try-catch)
2015-10-25 23:25 727/* 异常:就是程序在运行时出现不正常情况 异常由来:问题 ... -
148_多线程(停止线程)
2015-10-25 23:16 578/* stop方法已经过时。 如何停止线程? 只有一 ... -
147_多线程(线程间通信-生产者消费者JDK5.0升级版)
2015-10-21 23:33 747/*JDK1.5及以上提供了多线程升级解决方案。 将同步Sy ... -
146_多线程(线程间通信-生产者消费者)
2015-10-20 23:35 622一个生产者一个消费者 ... -
144_多线程(线程间通信-等待唤醒机制)
2015-10-20 18:35 719class Res{ String name; Str ... -
142_多线程-线程间通信
2015-10-20 16:18 699/* 线程间通讯: 其实就是多线程在操作同一个资源。 但 ... -
141多线程-死锁
2015-10-20 14:45 689/* 死锁: 同步中嵌套同步 */ class T ... -
140_多线程(多线程-单例设计模式-懒汉式)
2015-10-19 11:45 676/* 单例设计模式 饿汉式 class Single ... -
138_多线程(多线程-同步函数的锁是this)
2015-10-15 14:48 846/* 同步函数用的是哪一个锁呢? 函数需要被对象调用。那么 ... -
137_多线程(多线程-同步函数)
2015-10-13 23:25 595/* 需求:银行有一个金库。 有两个储户分别存300元 ... -
135_多线程(多线程的安全问题)
2015-10-13 18:07 608class TWindow implements Runnab ... -
多线程(创建线程-实现Runnable接口)
2015-10-10 00:19 552class TWindow implements Runnab ... -
133_多线程(售票的例子)
2015-10-09 23:48 638/* 需求:简单的买票程序 多个窗口卖票 */ c ... -
132_多线程(获取线程对象以及名称)
2015-10-09 23:30 1214/* 练习:创建两个线程,和主线程交替运行 线程都有自 ... -
多线程-继承Thread类
2015-10-09 00:26 1558/* 进程:是一个正在执行中的程序 每一个进程执行都有一个 ... -
包的应用
2015-10-08 23:28 1663package pack; class PackageD ...
相关推荐
下面我们将介绍 Java 中获取键盘输入值的三种方法。 方法一:使用 System.in.read() 在 Java 中,我们可以使用 System.in.read() 方法来获取键盘输入值。该方法可以从控制台接收一个字符,然后将其打印出来。下面...
Java中获取键盘输入值的三种方法介绍 Java中获取键盘输入值是程序开发过程中常见的情形,但Java中并没有像C语言的scanf()或C++的cin()这样的现成函数来获取键盘输入值。因此,开发者们需要依靠其他方法来获取键盘...
Java 中获取键盘输入值的三种方法是 Java 开发过程中非常重要的一部分,以下将对这三种方法进行详细的介绍和分析。 方法一:从控制台接收一个字符,然后将其打印出来 这种方法使用 System.in.read() 函数来读取...
Java提供了标准的字节输入流`System.in`,可以通过`read()`方法读取键盘输入。 **示例代码**: ```java public class DataKeyboardInput2 { public static void main(String[] args) { byte[] buf = new byte[10];...
Java实现读取键盘输入保存到txt文件,再统计并输出每个单词出现次数的方法 本文主要介绍了Java实现读取键盘输入保存到txt文件,再统计并输出每个单词出现次数的方法。该方法涉及到Java文件I/O操作、字符串遍历和运算...
### Java实现键盘输入的方法 在Java编程语言中,实现键盘输入是进行用户交互的重要手段之一。本文将基于提供的代码示例,详细介绍如何使用`Scanner`类实现键盘输入,并对比另一种利用`InputStreamReader`和`...
这部分代码通过`System.in.read(buffer)`方法读取用户从键盘输入的字符,存入字节数组`buffer`中。然后通过`System.out.print`和`System.out.write`方法将数组内容显示在控制台。 - 步骤二:文件读取与转换 这...
在键盘输入数据并保存到文件时,我们通常会用到`Scanner`类(用于读取键盘输入)和`FileWriter`类(用于写入文件)。下面是一个简单的示例,展示如何将用户输入的数据保存到一个文本文件中: ```java import java....
有几种不同的方法可以实现这一目标,这里主要讨论的是在Java中如何获取键盘输入。 1. **命令行参数**: Java程序可以通过`main`方法的`String[] args`参数接收命令行输入。当运行Java程序时,用户可以在命令行界面...
`InputStreamReader`是Java中用于读取字符流的类。它继承自`Reader`类,它是所有字符流读取器的抽象基类。在本例中,`inputstreamreader`实例化了一个`InputStreamReader`对象,将系统标准输入(`System.in`)作为...
### Java程序:求三个数的最大值 #### 知识点概览 1. **基本语法与数据类型**:包括变量声明、数据类型等。 2. **控制结构**:使用`if...else`语句实现逻辑判断。 3. **标准输入输出**:利用`BufferedReader`读取...
自己做的小东西,可能有未完善的地方;有错请喷!Java 获取控制台输入的整数并输出最大值和最小值。
Scanner 类提供了多种方法来读取键盘输入的数据,如 nextInt()、nextDouble() 等。 三、实验要求 实验要求包括四个部分,每个部分都涉及到 Java 基本语法的不同方面。 1. 编写一个 Java 程序,从键盘输入 3 个...
Java中从键盘输入多个整数的方法是Java基础编程中的一种常见操作。今天,我们将为您分享两种从键盘输入多个整数的方法,分别使用`sc.hasNextInt()`函数和`sc.trim()`函数。 使用`sc.hasNextInt()`函数 在使用`sc....
`System.in`是Java标准输入流的一个实例,通常用于读取键盘输入。但是,`System.in.read()`方法每次只能读取一个字节的数据,这对于读取字符串或更复杂的数据结构来说效率较低且不够直观。因此,虽然这种方法可以...
这个文档资料中的`Input`类提供了一种简洁的方式来获取不同类型的键盘输入,包括字符串、字符、整数、浮点数和双精度数。下面我们将详细探讨这个类的工作原理和其中涉及到的知识点。 首先,`Input`类通过`...
这是最基础的方法,它直接通过`System.in`来读取标准输入流(通常是键盘输入)。然而,这种方法有一些限制。首先,它只能读取单个字符,而不是完整的字符串。其次,如果需要读取其他类型的数据,如整数或浮点数,...
在Hook技术方面,Java中通常使用以下几种方法: - **Java Reflection**: 可以动态地获取和修改类、接口、字段和方法的信息,甚至在运行时改变对象行为。在软键盘项目中,Reflection可能被用来观察和修改键盘事件的...