String BuffferedReader和sacnner

JAVA键盘输入:Scanner和BufferedReader

public class ScannerTest {
  public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    //sc.useDelimiter("\n");
    while(sc.hasNext())
    {
      System.out.println("content "+sc.next());
    }
  }
}

System表示当前java程序的运行平台,无法创建System类的对象,只能调用System类的类方法和类属性.

System类提供了访问系统属性和环境变量的方法

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Map;
import java.util.Properties;

public class SystemTest {
  public static void main(String[] args) throws IOException {
    Map<String,String>env=System.getenv();
    for(String key:env.keySet())
    {
      System.out.println(key+">>"+env.get(key));
    }
    System.out.println("===============");
//		打印指定环境变量
    System.out.println(env.get("JAVA_HOME"));
    Properties props=System.getProperties();
//			  系统属性被保存在指定的txt中
    props.store(new FileOutputStream("props.txt"), "System properties");
  }

}

Scanner类用来接收键盘输入

sc.useDelimiter("\n");表示采用回车键作为分隔符.如果没有这段代码,输入

learn java

运行结果是:

content learn

content java

如果有这行代码,忽略空格,只把回车做分隔符,运行结果为:

content learn java

useDelimiter(String pattern)该方法参数应该为正则表达式

除了把回车作为分隔符之外,还可以使用hasNextLine()方法来返回下一行,可以将上面的程序改写为

public class ScannerTest {
  public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    //sc.useDelimiter("\n");
    while(sc.hasNext())
    {
      System.out.println("content "+sc.next());
    }
  }
}

Scanner还可以被用来读取txt文件

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ScannerTest2 {
  public static void main(String[] args) throws FileNotFoundException {
//		使用Scanner来读取文件输入
//		如果a文件不存在:
//		Exception in thread "main"
//		java.io.FileNotFoundException: a.txt (系统找不到指定的文件。)
    Scanner sc=new Scanner(new File("../a.txt"));
    System.out.println("contents of a.txt");
    while(sc.hasNextLine())
    {
      System.out.println(sc.nextLine());
    }
  }

}

BufferedReader是在1.5之前用来读取键盘输入的,它需要建立在字符流的基础之上,所以需要用InputStreamReader来包装System.in

BufferedReader bf=new BufferedReader(new InputStreamReader(System.in);
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class BufferedReaderTest {
  public static void main(String[] args) throws IOException {
    BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
    String sbr="";
    while((sbr= bf.readLine())!=null)
    {
      System.out.println(sbr);
    }
  }

}

除了String类型,Scanner还能读取int.下面的代码将输入的数字逐行相加,并且打印.BufferedReader只能读取String

public class ScannerTest {
    public static void main(String[] args) {
  Scanner sc=new Scanner(System.in);
//	sc.useDelimiter("\n");
  int i=0;
  while(sc.hasNext())
  {
//	    System.out.println("content "+sc.next());
      i+=sc.nextInt();
      System.out.println(i);
  }
    }
}
时间: 2024-10-14 02:11:30

String BuffferedReader和sacnner的相关文章

C# 引用类型之特例string

在C#编程的时候经常会使用字符串(string)类型,它也是引用类型,但是处处都不作为引用的用法来使用,实属特例,下来我一一罗列出来,供自己记忆方便: 1)字符串的直接赋值:本身字符串就是引用类型,应该使用  new 对象方法一个实例,但是微软为了方便大家,可以直接定义字符串变量 并且赋值操作,例如: string a = "我的中国心"; ,这样只是简化我们的操作: 2)一个字符串赋值给另一个字符串变量:正常的引用类型会将两个引用变量指向同一个地址,但是一个字符串变量赋值给另一个字符

C++ String 及其与char[]的比较

在学习C++之前  一般都是学过了C语言了 在C语言中   我们对字符串进行保存操作  使用的是char[] 但是在C++中    string比char[]的使用更为频繁  常见    下面稍微讲一下我对于string的认知 1.与其他的标准库类型一样   用户程序需要使用String类型对象  就必须包含相关的头文件   (为了编写方便   需要提供合适的using声明) #include <string> using std::string; 2.string对象的定义与初始化 stri

java String 类 基础笔记

字符串是一个特殊的对象. 字符串一旦初始化就不可以被改变. String s = "abc";//存放于字符串常量池,产生1个对象 String s1=new String("abc");//堆内存中new创建了一个String对象,产生2个对象 String类中的equals比较字符串中的内容. 常用方法: 一:获取 1.获取字符串中字符的个数(长度):length();方法. 2.根据位置获取字符:charAt(int index); 3.根据字符获取在字符串中

The constructor ClassPathXmlApplicationContext(String) refers to the missing type BeansException

"The constructor ClassPathXmlApplicationContext(String) refers to the missing type BeansException" "构造函数ClassPathXmlApplicationContext(字符串)是指缺失类型BeansException" 出现错误的原因:jar没有正确引入,即使表面上你能import包. import org.junit.Test; import org.spring

float类型如何转换为string类型

在一些很大的float类型的地方会用科学记数法表示,这个时候如果想完整记录下来,还是得转字符串,这里书写一个float类型转string类型的方法 <?php function float_to_string($float=0) { if(stripos($float, "e")!==false) { $tmp = explode("e",strtolower($float)); $float=bcmul($tmp[0], bcpow(10, $tmp[1])

JAVA: String详解

String 类用来存储字符串 ,是不可变的. 1. 基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==),比较的是他们的值. 2. 复合数据类型(类) 当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false.用 str.equals(str2) 方法来比较字符串的值是否相等. 3. len

TypeError: string indices must be integers, not str

1. TypeError: string indices must be integers, not str 字符串类型取第index个字符的时候,应该传入int而不是str.如 view source print? 1 a='abcdef' 2 print a[0] 3 #而不是 print a['0'] 更常见的情况是把一个string当成了字典在使用 :should_be_dict_but_string['id'] .这样的错误

to String()用法

toString()的使用: * * 1.java.lang.Object类中toString()定义如下: * public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } * * 2. 当我们打印一个对象的引用时,实际上就是调用了其toString() * * 3. 像String.Date.File.包装类等重写了Object类中的toString

186. Reverse Words in a String II

https://leetcode.com/problems/reverse-words-in-a-string-ii/#/description Given an input string, reverse the string word by word. A word is defined as a sequence of non-space characters. The input string does not contain leading or trailing spaces and