一.输入语句
1.使用Scanner类:
(1)使用java.util包。 import java.util.*;
(2)构造Scanner类对象,它附属于标准输入流System.in。 Scanner s = new Scanner(System.in);
(3)常用的next()方法系列: nextInt():输入整数 nextLine():输入字符串 nextDouble():输入双精度数 next():输入字符串(以空格作为分隔符)。
import java.util.*;
public class DEMO_1 {
public static void main(String[] args){
Scanner s = new Scanner(System.in);
System.out.print(“输入你的姓名:”);
String name = s.nextLine();
System.out.print(“输入你的年龄:”);
int age = s.nextInt();
System.out.println(“姓名:” + name + " 年龄:" + age );
s.close(); //若没有关闭Scanner对象将会出现警告
}
在Java中获取单个的字符
Scanner sc = new Scanner(System.in);
String s = sc.next(); //Scanner类没有提供直接接收一个字符的方法,这里当作字符串来接收;
char c = s.charAt(0); // 调用字符串的charAt()方法取得第一个字符就是了
String str = “adadsauo”;//定义一个字符串
char fir = str.charAt(0);//获取字符串的第一个字符
char i = str.charAt(i);//获取字符串的第i个字符
import java.util.Scanner;
关于scanner跳出输入循环
Scanner
while(scanner.hasNextInt()){…}
输入非整数时跳出循环。
其他 hasNextXXX 方法有同样的作用
这是很简单的一个例子,输出bye(不区分大小写)退出
public class Test001 {
public static void main(String[] args) {
System.out.println(“↑ ↓ ← →”);
Scanner scanner=new Scanner(System.in);
System.out.print(“请输入数字”);
String input="";
while(!input.equalsIgnoreCase(“bye”)){
input=scanner.next();
}
System.out.println(“您已经退出”);
}
}
2.使用java.io.BufferedReader和java.io.InputStreamReader:
步骤:
(1)使用java.io包。 import java.io.*;
(2)构造 BufferedReader类对象,它附属于标准输入流System.in。
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
public class Sandbox4 extends Sandbox2{
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
while(true){
try {
str = br.readLine();
}catch(IOException e){
e.printStackTrace();
}
if(str.equals(“END”))break;
System.out.print(str);
}
}
}
请注意:
(1)read方法:读取单个字符。 返回:作为一个整数(其范围从 0 到 65535 (0x00-0xffff))读入的字符,如果已到达流末尾,则返回 -1 ;
(2)readLine方法:读取一个文本行。通过下列字符之一即可认为某行已终止:换行 (’\n’)、回车 (’\r’) 或回车后直接跟着换行。 返回:包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null。
3、使用java.io.Console:
public class Sandbox4 extends Sandbox2{
public static void main(String[] args) {
Console console = System.console();
if (console == null) {
throw new IllegalStateException(“Console is not available!”);
}
String str = null;
while(true){
str = console.readLine(“请输入”);
if(“END”.equals(str))break;
System.out.println(str);
}
}
}
输出语句
Java中的输出语句有以下四种:
System.out.println(1111);//换行打印
System.out.print(1111);//不换行打印
System.out.write(2222);//字节输出
System.out.printf("%+8.3f\n", 3.14);//按格式输出
System.out.println(); 是最常用的输出语句,它会把括号里的内容转换成字符串输出到输出窗口(控制台),并且换行,当输出的是一个基本数据类型时,会自动转换成字符串,如果输出的是一个对象,会自动调用对象的toString();方法,将返回值输出到控制台
System.out.print(); 与第一个很相似,区别就是上一个输出后会换行,而这个命令输出后并不换行。
System.out.printf(); 这个方法延续了C语言的输出方式,通过格式化文本和参数列表输出。
scanner函数详解
import java.util.Scanner;
/**
Scanner的简单示例
*/
public class TestScanner {
public static void main(String[] args) {
//创建Scanner对象
//System.in表示标准化输出,也就是键盘输出
Scanner sc = new Scanner(System.in);
//利用hasNextXXX()判断是否还有下一输入项
while (sc.hasNext()) {
//利用nextXXX()方法输出内容
String str = sc.next();
System.out.println(str);
}
}
}
复制代码
结果就是:你在控制台输入什么内容,点击回车后,下面就会输出同样的内容,如果你输入的时候点击了回车或者Tab键,那么输出的内容就会在那个地方换行~~
结果如图:
java利用Scanner获取键盘输入 - 冲出地球 - 冲出地球
可以利用Scanner在java程序需要参数的时候输入参数
代码示例:TestScannerIn.java
复制代码
import java.util.Scanner;
/**
使用Scanner在程序需要的时候输入参数
*/
public class TestScannerIn {
public static void main(String[] args) {
/**
* 写一个输出个人信息的小例子
* */
Scanner sc = new Scanner(System.in);
sc.useDelimiter("/n");
System.out.println("欢迎来到冲出地球的博客,我是冲出地球^_^");
System.out.println("请问你叫什么名字呢?");
String name = sc.nextLine();
System.out.println("请问你来自哪里呢?");
String area = sc.nextLine();
System.out.println("好的,你来自" + area + ",那么,你们那有什么美食吗?");
String food = sc.nextLine();
System.out.println("好的,那么我来复述一下你的信息:");
System.out.println("你叫" + name + ",来自于:" + area);
System.out.println("你们那最好吃的东西是:" + food);
System.out.println("对吧~~");
}
}
复制代码
结果:
java利用Scanner获取键盘输入 - 冲出地球 - 冲出地球
Scanner除了可以获取键盘输入外,也可以获取文件中的内容,将文件中的内容一行一行的输入出来
如果文档在项目中(如图)
java利用Scanner获取键盘输入 - 冲出地球 - 冲出地球
示例代码:TestScannerRead.java
复制代码
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
/**
利用Scanner读取项目中的文档
*/
public class TestScannerRead {
public static void main(String[] args){
Scanner sc;
try {
//读取项目中的文档
sc = new Scanner(new File("ScannerTest.txt"));
System.out.println("项目中的文本内容是:");
//通过判断是否有下一行来输出文档内容
while (sc.hasNextLine()) {
System.out.println(sc.nextLine());
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
复制代码
结果:
java利用Scanner获取键盘输入 - 冲出地球 - 冲出地球
如果从本地读取文档
示例代码:TestScannerRead.java
复制代码
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;
/**
利用Scanner读取本地的文件
*/
public class TestScannerRead {
public static void main(String[] args){
FileInputStream fis;
try {
//利用文件上传功能
fis = new FileInputStream(“D:\text\ScannerTest.txt”);
//设置文件编码
Scanner sc = new Scanner(fis,“UTF-8”);
System.out.println(“本地文件内容:”);
//输出文件内容
while (sc.hasNextLine()) {
System.out.println(sc.nextLine());
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
复制代码
结果:
java利用Scanner获取键盘输入 - 冲出地球 - 冲出地球