在命令行下体现互动
输入输出的编程实例
输入的一个实例
用Scanner类.
一个可以使用正则表达式来分析基本类型和字符串的简单文本扫描器。
Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。
例如,以下代码使用户能够从 System.in 中读取一个数:
Scanner sc = new Scanner(System.in); int i = sc.nextInt(); 再看一个例子,以下代码使 long 类型可以通过 myNumbers 文件中的项分配:
Scanner sc = new Scanner(new File("myNumbers")); while (sc.hasNextLong()) { long aLong = sc.nextLong(); }扫描器还可以使用不同于空白的分隔符。下面是从一个字符串读取若干项的例子:
String input = "1 fish 2 fish red fish blue fish"; Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*"); System.out.println(s.nextInt()); System.out.println(s.nextInt()); System.out.println(s.next()); System.out.println(s.next()); s.close(); 输出为:
1 2 red blue 以下代码使用正则表达式同时分析所有的 4 个标记,并可以产生与上例相同的输出结果:
String input = "1 fish 2 fish red fish blue fish"; Scanner s = new Scanner(input); s.findInLine("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)"); MatchResult result = s.match(); for (int i=1; i<=result.groupCount(); i++) System.out.println(result.group(i); s.close(); import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入你的名字");
System.out.print("哈哈"+scanner.next());
}
}
注意:
SCANNER 有缺点:他的取得依据是空格符号和TAB键 或者回车符号,SCANNER就会下一个输入。所以有时候输入一个字符串就不能用了。
那么引入新的类
BufferedReader 这个类是属于一个JAVA.IO 的一个包.所以可能引发输入和输出异常.IOException.
public class BufferedReader
extends Reader
从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。
可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。
通常,Reader 所作的每个读取请求都会导致对基础字符或字节流进行相应的读取请求。因此,建议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader(如 FileReader 和 InputStreamReader)。例如,
BufferedReader in
= new BufferedReader(new FileReader("foo.in"));
将缓冲指定文件的输入。如果没有缓冲,则每次调用 read() 或 readLine() 都会导致从文件中读取字节,并将其转换为字符后返回,而这是极其低效的。
可以对使用 DataInputStream 进行按原文输入的程序进行本地化,方法是用合适的 BufferedReader 替换每个 DataInputStream。
标准输出 out 就可以打印到屏幕上了
用 > 可以重新定位到指定的文件 用>>做附加定位用
import java.util.*;
public class ScannerDemo
{
public static void main(String[] args) //主函数
{
System.out.print("请输入您的年龄:");
Scanner sc = new Scanner(System.in); //System.in是指从系统基本输入
int i = sc.nextInt();
System.out.println("****************");
System.out.println("您输入的年另是:"+i); //System.out 从系统基本输出
}
}
第一个实例 JAVA的开始之旅

publicclassHelloWorld...{
publicstaticvoidmain(String[]args)...{
System.out.println("你好测试程序");
}
}
第二个实例
importjava.util.*;
publicclassScannerDemo
...{
publicstaticvoidmain(String[]args)//主函数
...{
System.out.print("请输入您的名字:");
Scannersc=newScanner(System.in);//System.in是指从系统基本输入
Stringi=sc.next();
System.out.println("****************");
System.out.println("您输入的名字是:"+i);//System.out从系统基本输出
}
}
第三个实例
importjava.io.*;//导入一个包
publicclassBufferedReaderDemo...{
publicstaticvoidmain(String[]args)throwsIOException
...{
BufferedReaderbufferedReader=newBufferedReader(newInputStreamReader(System.in));
System.out.println("请输入文字");
Stringtext=bufferedReader.readLine();
System.out.println("您输入的文字:"+text)

941

被折叠的 条评论
为什么被折叠?



