java字符串怎么输入输出_4.java字符串和输入输出

目录

1.String类

2.StringBuilder类

3.StringBuffer类

4.Java:String、StringBuffer 和 StringBuilder 的区别

5.输入输出类

6.java格式化输出

1.String类

从概念上讲,java字符串就是Unicode字符序列。

String类提供处理Unicode代码点(即字符)的方法,以及用于处理Unicode代码单元(即char值)的方法。

String类代表字符串。 Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例。

字符串不变; 它们的值在创建后不能被更改。 字符串缓冲区支持可变字符串。 因为String对象是不可变的,它们可以被共享。

构造方法

Constructor and Description String() 初始化新创建的 String对象,使其表示空字符序列。 String(byte[] bytes) 通过使用平台的默认字符集解码指定的字节数组来构造新的 String 。 String(byte[] bytes, Charset charset) 构造一个新的String由指定用指定的字节的数组解码charset 。 String(byte[] ascii, int hibyte)已弃用 此方法无法将字节正确转换为字符。 从JDK 1.1开始,首选的方法是通过String构造函数获取Charset ,字符集名称,或者使用平台的默认字符集。 String(byte[] bytes, int offset, int length) 通过使用平台的默认字符集解码指定的字节子阵列来构造新的 String 。 String(byte[] bytes, int offset, int length, Charset charset) 构造一个新的String通过使用指定的指定字节子阵列解码charset 。 String(byte[] ascii, int hibyte, int offset, int count)已弃用 此方法无法将字节正确转换为字符。 从JDK 1.1开始,首选的方式是通过String构造函数获取Charset ,字符集名称,或使用平台的默认字符集。 String(byte[] bytes, int offset, int length, String charsetName) 构造一个新的 String通过使用指定的字符集解码指定的字节子阵列。 String(byte[] bytes, String charsetName) 构造一个新的String由指定用指定的字节的数组解码charset 。 String(char[] value) 分配一个新的 String ,以便它表示当前包含在字符数组参数中的字符序列。 String(char[] value, int offset, int count) 分配一个新的 String ,其中包含字符数组参数的子阵列中的字符。 String(int[] codePoints, int offset, int count) 分配一个新的 String ,其中包含 Unicode code point数组参数的子阵列中的 字符 。 String(String original) 初始化新创建的String对象,使其表示与参数相同的字符序列; 换句话说,新创建的字符串是参数字符串的副本。 String(StringBuffer buffer) 分配一个新的字符串,其中包含当前包含在字符串缓冲区参数中的字符序列。 String(StringBuilder builder) 分配一个新的字符串,其中包含当前包含在字符串构建器参数中的字符序列。

常用方法:

Modifier and TypeMethod and DescriptioncharcharAt(int index) 返回 char指定索引处的值。 intcodePointAt(int index) 返回指定索引处的字符(Unicode代码点)。 intcodePointBefore(int index) 返回指定索引之前的字符(Unicode代码点)。 intcodePointCount(int beginIndex, int endIndex) 返回此 String指定文本范围内的Unicode代码点数。 intcompareTo(String anotherString) 按字典顺序比较两个字符串。 intcompareToIgnoreCase(String str) 按字典顺序比较两个字符串,忽略病例差异。 Stringconcat(String str) 将指定的字符串连接到该字符串的末尾。 booleancontains(CharSequence s) 当且仅当此字符串包含指定的char值序列时才返回true。 booleancontentEquals(CharSequence cs) 将此字符串与指定的CharSequence进行 CharSequence 。 booleancontentEquals(StringBuffer sb) 将此字符串与指定的StringBuffer进行 StringBuffer 。 static StringcopyValueOf(char[] data) 相当于 valueOf(char[]) 。 static StringcopyValueOf(char[] data, int offset, int count) 相当于 valueOf(char[], int, int) 。 booleanendsWith(String suffix) 测试此字符串是否以指定的后缀结尾。 booleanequals(Object anObject) 将此字符串与指定对象进行比较。 booleanequalsIgnoreCase(String anotherString) 将此 String与其他 String比较,忽略案例注意事项。 static Stringformat(Locale l, String format, Object... args) 使用指定的区域设置,格式字符串和参数返回格式化的字符串。 static Stringformat(String format, Object... args) 使用指定的格式字符串和参数返回格式化的字符串。 byte[]getBytes() 使用平台的默认字符集将此 String编码为字节序列,将结果存储到新的字节数组中。 byte[]getBytes(Charset charset) 使用给定的charset将该String编码为字节序列,将结果存储到新的字节数组中。 voidgetBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin)已弃用 此方法无法将字符正确转换为字节。 从JDK 1.1开始,首选的方法是通过getBytes()方法,该方法使用平台的默认字符集。 byte[]getBytes(String charsetName) 使用命名的字符集将此 String编码为字节序列,将结果存储到新的字节数组中。 voidgetChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 将此字符串中的字符复制到目标字符数组中。 inthashCode() 返回此字符串的哈希码。 intindexOf(int ch) 返回指定字符第一次出现的字符串内的索引。 intindexOf(int ch, int fromIndex) 返回指定字符第一次出现的字符串内的索引,以指定的索引开始搜索。 intindexOf(String str) 返回指定子字符串第一次出现的字符串内的索引。 intindexOf(String str, int fromIndex) 返回指定子串的第一次出现的字符串中的索引,从指定的索引开始。 Stringintern() 返回字符串对象的规范表示。 booleanisEmpty() 返回 true如果,且仅当 length()为 0 。 static Stringjoin(CharSequence delimiter, CharSequence... elements) 返回一个新的字符串,由 CharSequence elements的副本组成,并附有指定的delimiter的 delimiter 。 static Stringjoin(CharSequence delimiter, Iterable extends CharSequence> elements) 返回一个新 String的副本组成 CharSequence elements与指定的副本一起加入 delimiter 。 intlastIndexOf(int ch) 返回指定字符的最后一次出现的字符串中的索引。 intlastIndexOf(int ch, int fromIndex) 返回指定字符的最后一次出现的字符串中的索引,从指定的索引开始向后搜索。 intlastIndexOf(String str) 返回指定子字符串最后一次出现的字符串中的索引。 intlastIndexOf(String str, int fromIndex) 返回指定子字符串的最后一次出现的字符串中的索引,从指定索引开始向后搜索。 intlength() 返回此字符串的长度。 booleanmatches(String regex) 告诉这个字符串是否匹配给定的 regular expression 。 intoffsetByCodePoints(int index, int codePointOffset) 返回此 String内的指数,与 index codePointOffset代码点。 booleanregionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) 测试两个字符串区域是否相等。 booleanregionMatches(int toffset, String other, int ooffset, int len) 测试两个字符串区域是否相等。 Stringreplace(char oldChar, char newChar) 返回从替换所有出现的导致一个字符串 oldChar在此字符串 newChar 。 Stringreplace(CharSequence target, CharSequence replacement) 将与字面目标序列匹配的字符串的每个子字符串替换为指定的字面替换序列。 StringreplaceAll(String regex, String replacement) 用给定的替换替换与给定的 regular expression匹配的此字符串的每个子字符串。 StringreplaceFirst(String regex, String replacement) 用给定的替换替换与给定的 regular expression匹配的此字符串的第一个子字符串。 String[]split(String regex) 将此字符串分割为给定的 regular expression的匹配。 String[]split(String regex, int limit) 将这个字符串拆分为给定的 regular expression的匹配。 booleanstartsWith(String prefix) 测试此字符串是否以指定的前缀开头。 booleanstartsWith(String prefix, int toffset) 测试在指定索引处开始的此字符串的子字符串是否以指定的前缀开头。 CharSequencesubSequence(int beginIndex, int endIndex) 返回一个字符序列,该序列是该序列的子序列。 Stringsubstring(int beginIndex) 返回一个字符串,该字符串是此字符串的子字符串。 Stringsubstring(int beginIndex, int endIndex) 返回一个字符串,该字符串是此字符串的子字符串。 char[]toCharArray() 将此字符串转换为新的字符数组。 StringtoLowerCase() 将所有在此字符 String使用默认语言环境的规则,以小写。 StringtoLowerCase(Locale locale) 将所有在此字符 String ,以降低使用给定的规则情况下 Locale 。 StringtoString() 此对象(已经是字符串!)本身已被返回。 StringtoUpperCase() 将所有在此字符 String使用默认语言环境的规则大写。 StringtoUpperCase(Locale locale) 将所有在此字符 String使用给定的规则,大写 Locale 。 Stringtrim() 返回一个字符串,其值为此字符串,并删除任何前导和尾随空格。 static StringvalueOf(boolean b) 返回 boolean参数的字符串 boolean形式。 static StringvalueOf(char c) 返回 char参数的字符串 char形式。 static StringvalueOf(char[] data) 返回 char数组参数的字符串 char形式。 static StringvalueOf(char[] data, int offset, int count) 返回 char数组参数的特定子阵列的字符串 char形式。 static StringvalueOf(double d) 返回 double参数的字符串 double形式。 static StringvalueOf(float f) 返回 float参数的字符串 float形式。 static StringvalueOf(int i) 返回 int参数的字符串 int形式。 static StringvalueOf(long l) 返回 long参数的字符串 long形式。 static StringvalueOf(Object obj) 返回 Object参数的字符串 Object形式。

2.StringBuilder类

一个可变的字符序列。 此类提供与StringBuffer的API,但不保证同步。 此类设计用作简易替换为StringBuffer在正在使用由单个线程字符串缓冲区的地方(如通常是这种情况)。 在可能的情况下,建议使用这个类别优先于StringBuffer ,因为它在大多数实现中将更快。

StringBuilder的主要StringBuilder是append和insert方法,它们是重载的,以便接受任何类型的数据。 每个都有效地将给定的数据转换为字符串,然后将该字符串的字符附加或插入字符串构建器。 append方法始终在构建器的末尾添加这些字符; insert方法将insert添加到指定点。

构造方法

Constructor and DescriptionStringBuilder() 构造一个没有字符的字符串构建器,初始容量为16个字符。 StringBuilder(CharSequence seq) 构造一个包含与指定的相同字符的字符串构建器 CharSequence 。 StringBuilder(int capacity) 构造一个没有字符的字符串构建器,由 capacity参数指定的初始容量。 StringBuilder(String str) 构造一个初始化为指定字符串内容的字符串构建器。

常用方法

Modifier and TypeMethod and DescriptionStringBuilderappend(boolean b) 将 boolean参数的字符串表示附加到序列中。 StringBuilderappend(char c) 将 char参数的字符串表示附加到此序列。 StringBuilderappend(char[] str) 将 char数组参数的字符串表示追加到此序列。 StringBuilderappend(char[] str, int offset, int len) 将 char数组参数的子阵列的字符串表示附加到此序列。 StringBuilderappend(CharSequence s) 将指定的字符序列追加到此 Appendable 。 StringBuilderappend(CharSequence s, int start, int end) 追加指定的序列 CharSequence的序列。 StringBuilderappend(double d) 将 double参数的字符串表示法附加到此序列。 StringBuilderappend(float f) 将 float参数的字符串表示附加到此序列。 StringBuilderappend(int i) 将 int参数的字符串表示法附加到此序列。 StringBuilderappend(long lng) 将 long参数的字符串表示法附加到此序列。 StringBuilderappend(Object obj) 追加 Object参数的字符串 Object形式。 StringBuilderappend(String str) 将指定的字符串附加到此字符序列。 StringBuilderappend(StringBuffer sb) 将指定 StringBuffer这个序列。 StringBuilderappendCodePoint(int codePoint) 将 codePoint参数的字符串表示附加到此序列。 intcapacity() 返回当前容量。 charcharAt(int index) 返回 char在指定索引在这个序列值。 intcodePointAt(int index) 返回指定索引处的字符(Unicode代码点)。 intcodePointBefore(int index) 返回指定索引之前的字符(Unicode代码点)。 intcodePointCount(int beginIndex, int endIndex) 返回此序列指定文本范围内的Unicode代码点数。 StringBuilderdelete(int start, int end) 删除此序列的子字符串中的字符。 StringBuilderdeleteCharAt(int index) 删除 char在这个序列中的指定位置。 voidensureCapacity(int minimumCapacity) 确保容量至少等于规定的最小值。 voidgetChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 字符从该序列复制到目标字符数组 dst 。 intindexOf(String str) 返回指定子字符串第一次出现的字符串内的索引。 intindexOf(String str, int fromIndex) 返回指定子串的第一次出现的字符串中的索引,从指定的索引开始。 StringBuilderinsert(int offset, boolean b) 将 boolean参数的字符串表示插入到此序列中。 StringBuilderinsert(int offset, char c) 在此序列中插入 char参数的字符串表示形式。 StringBuilderinsert(int offset, char[] str) 在此序列中插入 char数组参数的字符串表示形式。 StringBuilderinsert(int index, char[] str, int offset, int len) 在此序列中插入 str数组参数的子阵列的字符串表示形式。 StringBuilderinsert(int dstOffset, CharSequence s) 将指定的 CharSequence这个序列。 StringBuilderinsert(int dstOffset, CharSequence s, int start, int end) 将指定的CharSequence的子 CharSequence插入到此序列中。 StringBuilderinsert(int offset, double d) 在此序列中插入 double参数的字符串表示形式。 StringBuilderinsert(int offset, float f) 在此序列中插入 float参数的字符串表示形式。 StringBuilderinsert(int offset, int i) 将第二个 int参数的字符串表示插入到此序列中。 StringBuilderinsert(int offset, long l) 在此序列中插入 long参数的字符串表示形式。 StringBuilderinsert(int offset, Object obj) 将 Object参数的字符串表示插入到此字符序列中。 StringBuilderinsert(int offset, String str) 将字符串插入到此字符序列中。 intlastIndexOf(String str) 返回指定子字符串最右边出现的字符串内的索引。 intlastIndexOf(String str, int fromIndex) 返回指定子字符串最后一次出现的字符串中的索引。 intlength() 返回长度(字符数)。 intoffsetByCodePoints(int index, int codePointOffset) 返回此序列中与 index由 codePointOffset代码点偏移的索引。 StringBuilderreplace(int start, int end, String str) 用指定的String中的字符替换此序列的子字符串中的 String 。 StringBuilderreverse() 导致该字符序列被序列的相反代替。 voidsetCharAt(int index, char ch) 指定索引处的字符设置为 ch 。 voidsetLength(int newLength) 设置字符序列的长度。 CharSequencesubSequence(int start, int end) 返回一个新的字符序列,该序列是该序列的子序列。 Stringsubstring(int start) 返回一个新的 String ,其中包含此字符序列中当前包含的字符的子序列。 Stringsubstring(int start, int end) 返回一个新的 String ,其中包含此序列中当前包含的字符的子序列。 StringtoString() 返回表示此顺序中的数据的字符串。 voidtrimToSize() 尝试减少用于字符序列的存储。

3.StringBuffer类

线程安全,可变的字符序列。 字符串缓冲区就像一个String ,但可以修改。 在任何时间点,它包含一些特定的字符序列,但可以通过某些方法调用来更改序列的长度和内容。

字符串缓冲区可以安全地被多个线程使用。 这些方法在必要时进行同步,以便任何特定实例上的所有操作都按照与所涉及的各个线程所执行的方法调用顺序一致的顺序发生。

StringBuffer的主要StringBuffer是append和insert方法,它们被重载以便接受任何类型的数据。 每个都有效地将给定的数据转换为字符串,然后将该字符串的字符附加或插入到字符串缓冲区。 append方法总是在缓冲区的末尾添加这些字符; insert方法将insert添加到指定点。

构造方法

Constructor and DescriptionStringBuffer() 构造一个没有字符的字符串缓冲区,初始容量为16个字符。 StringBuffer(CharSequence seq) 构造一个包含与指定的相同字符的字符串缓冲区 CharSequence 。 StringBuffer(int capacity) 构造一个没有字符的字符串缓冲区和指定的初始容量。 StringBuffer(String str) 构造一个初始化为指定字符串内容的字符串缓冲区。

主要方法:

Modifier and TypeMethod and DescriptionStringBufferappend(boolean b) 将 boolean参数的字符串表示附加到序列中。 StringBufferappend(char c) 将 char参数的字符串表示附加到此序列。 StringBufferappend(char[] str) 将 char数组参数的字符串表示附加到此序列。 StringBufferappend(char[] str, int offset, int len) 将 char数组参数的子阵列的字符串表示附加到此序列。 StringBufferappend(CharSequence s) 追加指定的 CharSequence到这个序列。 StringBufferappend(CharSequence s, int start, int end) 追加指定的序列 CharSequence到这个序列。 StringBufferappend(double d) 将 double参数的字符串表示附加到此序列。 StringBufferappend(float f) 将 float参数的字符串表示附加到此序列。 StringBufferappend(int i) 将 int参数的字符串表示附加到此序列。 StringBufferappend(long lng) 将 long参数的字符串表示附加到此序列。 StringBufferappend(Object obj) 追加 Object参数的字符串表示。 StringBufferappend(String str) 将指定的字符串附加到此字符序列。 StringBufferappend(StringBuffer sb) 将指定 StringBuffer这个序列。 StringBufferappendCodePoint(int codePoint) 将 codePoint参数的字符串表示法附加到此序列。 intcapacity() 返回当前容量。 charcharAt(int index) 返回 char在指定索引在这个序列值。 intcodePointAt(int index) 返回指定索引处的字符(Unicode代码点)。 intcodePointBefore(int index) 返回指定索引之前的字符(Unicode代码点)。 intcodePointCount(int beginIndex, int endIndex) 返回此序列指定文本范围内的Unicode代码点数。 StringBufferdelete(int start, int end) 删除此序列的子字符串中的字符。 StringBufferdeleteCharAt(int index) 删除 char在这个序列中的指定位置。 voidensureCapacity(int minimumCapacity) 确保容量至少等于规定的最小值。 voidgetChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 字符从该序列复制到目标字符数组 dst 。 intindexOf(String str) 返回指定子字符串第一次出现的字符串内的索引。 intindexOf(String str, int fromIndex) 返回指定子串的第一次出现的字符串中的索引,从指定的索引开始。 StringBufferinsert(int offset, boolean b) 在此序列中插入 boolean参数的字符串表示形式。 StringBufferinsert(int offset, char c) 在此序列中插入 char参数的字符串表示形式。 StringBufferinsert(int offset, char[] str) 在此序列中插入 char数组参数的字符串表示形式。 StringBufferinsert(int index, char[] str, int offset, int len) 在此序列中插入 str数组参数的子阵列的字符串表示形式。 StringBufferinsert(int dstOffset, CharSequence s) 将指定的 CharSequence这个序列。 StringBufferinsert(int dstOffset, CharSequence s, int start, int end) 将指定的子序列 CharSequence这个序列。 StringBufferinsert(int offset, double d) 在此序列中插入 double参数的字符串表示形式。 StringBufferinsert(int offset, float f) 在此序列中插入 float参数的字符串表示形式。 StringBufferinsert(int offset, int i) 将第二个 int参数的字符串表示插入到此序列中。 StringBufferinsert(int offset, long l) 在此序列中插入 long参数的字符串表示形式。 StringBufferinsert(int offset, Object obj) 将 Object参数的字符串表示插入到此字符序列中。 StringBufferinsert(int offset, String str) 将字符串插入到此字符序列中。 intlastIndexOf(String str) 返回指定子字符串最右边出现的字符串内的索引。 intlastIndexOf(String str, int fromIndex) 返回指定子字符串最后一次出现的字符串中的索引。 intlength() 返回长度(字符数)。 intoffsetByCodePoints(int index, int codePointOffset) 返回此序列中与 index ( codePointOffset代码点偏移的索引。 StringBufferreplace(int start, int end, String str) 用指定的String中的字符替换此序列的子字符串中的 String 。 StringBufferreverse() 导致该字符序列被序列的相反代替。 voidsetCharAt(int index, char ch) 指定索引处的字符设置为 ch 。 voidsetLength(int newLength) 设置字符序列的长度。 CharSequencesubSequence(int start, int end) 返回一个新的字符序列,该序列是该序列的子序列。 Stringsubstring(int start) 返回一个新的 String ,其中包含此字符序列中当前包含的字符的子序列。 Stringsubstring(int start, int end) 返回一个新的 String ,其中包含此序列中当前包含的字符的子序列。 StringtoString() 返回表示此顺序中的数据的字符串。 voidtrimToSize() 尝试减少用于字符序列的存储。

4.Java:String、StringBuffer 和 StringBuilder 的区别

String:字符串常量,字符串长度不可变。Java中String 是immutable(不可变)的。用于存放字符的数组被声明为final的,因此只能赋值一次,不可再更改。

StringBuffer:字符串变量(Synchronized,即线程安全)。如果要频繁对字符串内容进行修改,出于效率考虑最好使用 。StringBuffer如果想转成 String 类型,可以调用 StringBuffer 的 toString() 方法。Java.lang.StringBuffer 线程安全的可变字符序列。在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。可将字符串缓冲区安全地用于多个线程。

StringBuilder:字符串变量(非线程安全)。在内部 StringBuilder 对象被当作是一个包含字符序列的变长数组。

基本原则:

如果要操作少量的数据用 String ;

单线程操作大量数据用StringBuilder ;

多线程操作大量数据,用StringBuffer。

5.输入输出类

5.1 java.lang.System

System类包含几个有用的类字段和方法。 它不能被实例化。

System类提供的System包括标准输入,标准输出和错误输出流; 访问外部定义的属性和环境变量; 一种加载文件和库的方法; 以及用于快速复制阵列的一部分的实用方法。

构造方法:

Modifier and TypeField and Descriptionstatic PrintStreamerr “标准”错误输出流。 static InputStreamin “标准”输入流。 static PrintStreamout “标准”输出流。

主要方法

Modifier and TypeMethod and Descriptionstatic voidarraycopy(Object src, int srcPos, Object dest, int destPos, int length) 将指定源数组中的数组从指定位置复制到目标数组的指定位置。 static StringclearProperty(String key) 删除指定键指定的系统属性。 static Consoleconsole() 返回与当前Java虚拟机关联的唯一的Console对象(如果有)。 static longcurrentTimeMillis() 返回当前时间(以毫秒为单位)。 static voidexit(int status) 终止当前运行的Java虚拟机。 static voidgc() 运行垃圾回收器。 static Mapgetenv() 返回当前系统环境的不可修改的字符串映射视图。 static Stringgetenv(String name) 获取指定环境变量的值。 static PropertiesgetProperties() 确定当前的系统属性。 static StringgetProperty(String key) 获取指定键指示的系统属性。 static StringgetProperty(String key, String def) 获取指定键指示的系统属性。 static SecurityManagergetSecurityManager() 获取系统安全界面。 static intidentityHashCode(Object x) 返回与默认方法hashCode()返回的给定对象相同的哈希码,无论给定对象的类是否覆盖了hashCode()。 static ChannelinheritedChannel() 返回从创建此Java虚拟机的实体继承的通道。 static StringlineSeparator() 返回与系统相关的行分隔符字符串。 static voidload(String filename) 加载由filename参数指定的本机库。 static voidloadLibrary(String libname) 加载 libname参数指定的本机库。 static StringmapLibraryName(String libname) 将库名称映射到表示本地库的平台特定字符串。 static longnanoTime() 以纳秒为单位返回正在运行的Java虚拟机的高分辨率时间源的当前值。 static voidrunFinalization() 运行任何对象等待定稿的最终化方法。 static voidrunFinalizersOnExit(boolean value)已弃用 这种方法本质上是不安全的。 它可能导致在活动对象上调用finalizer,而其他线程同时操作这些对象,导致不稳定的行为或死锁。 static voidsetErr(PrintStream err) 重新分配“标准”错误输出流。 static voidsetIn(InputStream in) 重新分配“标准”输入流。 static voidsetOut(PrintStream out) 重新分配“标准”输出流。 static voidsetProperties(Properties props) 将系统属性设置为 Properties参数。 static StringsetProperty(String key, String value) 设置由指定键指示的系统属性。 static voidsetSecurityManager(SecurityManager s) 设置系统安全性。

5.2 java.util.Scanner

一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串。

A Scanner分隔符模式将输入打破到令牌,默认情况下匹配空格。 然后可以使用各种next方法将得到的令牌转换成不同类型的值。

构造方法:

Constructor and DescriptionScanner(File source) 构造一个新的 Scanner ,产生从指定文件扫描的值。 Scanner(File source, String charsetName) 构造一个新的 Scanner ,产生从指定文件扫描的值。 Scanner(InputStream source) 构造一个新的 Scanner ,产生从指定输入流扫描的值。 Scanner(InputStream source, String charsetName) 构造一个新的 Scanner ,产生从指定输入流扫描的值。 Scanner(Path source) 构造一个新的 Scanner ,产生从指定文件扫描的值。 Scanner(Path source, String charsetName) 构造一个新的 Scanner ,产生从指定文件扫描的值。 Scanner(Readable source) 构造一个新的 Scanner ,产生从指定源扫描的值。 Scanner(ReadableByteChannel source) 构造一个新的 Scanner ,产生从指定通道扫描的值。 Scanner(ReadableByteChannel source, String charsetName) 构造一个新的 Scanner ,产生从指定通道扫描的值。 Scanner(String source) 构造一个新的 Scanner ,产生从指定字符串扫描的值。

常用方法:

Modifier and TypeMethod and Descriptionvoidclose() 关闭此扫描仪。 Patterndelimiter() 返回 Pattern这个 Scanner正在使用来匹配分隔符。 StringfindInLine(Pattern pattern) 尝试找到忽略分隔符的指定模式的下一个出现。 StringfindInLine(String pattern) 尝试查找从指定字符串构造的模式的下一个出现,忽略分隔符。 StringfindWithinHorizon(Pattern pattern, int horizon) 尝试找到指定模式的下一个出现。 StringfindWithinHorizon(String pattern, int horizon) 尝试查找从指定字符串构造的模式的下一个出现,忽略分隔符。 booleanhasNext() 如果此扫描仪在其输入中有另一个令牌,则返回true。 booleanhasNext(Pattern pattern) 如果下一个完整的令牌匹配指定的模式,则返回true。 booleanhasNext(String pattern) 如果下一个令牌匹配从指定字符串构造的模式,则返回true。 booleanhasNextBigDecimal() 如果在此扫描器输入信息的下一个标记可以解释为,则返回true BigDecimal使用 nextBigDecimal()方法。 booleanhasNextBigInteger() 如果在此扫描器输入信息的下一个标记可以解释为,则返回true BigInteger在使用默认基数 nextBigInteger()方法。 booleanhasNextBigInteger(int radix) 如果在此扫描器输入信息的下一个标记可以解释为,则返回true BigInteger在使用指定基数 nextBigInteger()方法。 booleanhasNextBoolean() 如果此扫描器输入中的下一个标记可以使用从字符串“true | false”创建的不区分大小写的模式解释为布尔值,则返回true。 booleanhasNextByte() 如果此扫描仪输入中的下一个标记可以使用 nextByte()方法将其 解释为默认基数中的字节值,则返回true。 booleanhasNextByte(int radix) 如果扫描仪输入中的下一个标记可以使用 nextByte()方法解释为指定基数中的字节值,则返回true。 booleanhasNextDouble() 如果扫描仪的输入中的下一个标记可以使用 nextDouble()方法将其解释为双重值,则返回true。 booleanhasNextFloat() 如果扫描仪输入中的下一个标记可以使用 nextFloat()方法将其解释为浮点值,则返回true。 booleanhasNextInt() 如果此扫描仪输入中的下一个标记可以使用 nextInt()方法解释为默认基数中的int值,则返回true。 booleanhasNextInt(int radix) 如果此扫描仪输入中的下一个标记可以使用 nextInt()方法解释为指定基数中的int值,则返回true。 booleanhasNextLine() 如果扫描仪的输入中有另一行,则返回true。 booleanhasNextLong() 如果此扫描仪输入中的下一个标记可以使用 nextLong()方法将其 解释为默认基数中的长整型值,则返回true。 booleanhasNextLong(int radix) 如果扫描仪的输入中的下一个标记可以使用 nextLong()方法解释为指定基数中的长整型值,则返回true。 booleanhasNextShort() 如果此扫描仪输入中的下一个标记可以使用 nextShort()方法将其 解释为默认基数中的一个短值,则返回true。 booleanhasNextShort(int radix) 如果扫描仪的输入中的下一个标记可以使用 nextShort()方法解释为指定基数中的一个短值,则返回true。 IOExceptionioException() 返回 IOException最后通过此抛出 Scanner的基本 Readable 。 Localelocale() 返回此扫描仪的区域设置。 MatchResultmatch() 返回此扫描仪执行的最后扫描操作的匹配结果。 Stringnext() 查找并返回此扫描仪的下一个完整令牌。 Stringnext(Pattern pattern) 如果匹配指定的模式,则返回下一个令牌。 Stringnext(String pattern) 如果匹配从指定字符串构造的模式,则返回下一个令牌。 BigDecimalnextBigDecimal() 将输入的下一个标记扫描为BigDecimal 。 BigIntegernextBigInteger() 将输入的下一个标记扫描为BigInteger 。 BigIntegernextBigInteger(int radix) 将输入的下一个标记扫描为BigInteger 。 booleannextBoolean() 将输入的下一个标记扫描为布尔值,并返回该值。 bytenextByte() 将输入的下一个标记扫描为 byte 。 bytenextByte(int radix) 将输入的下一个标记扫描为 byte 。 doublenextDouble() 将输入的下一个标记扫描为 double 。 floatnextFloat() 将输入的下一个标记扫描为 float 。 intnextInt() 将输入的下一个标记扫描为 int 。 intnextInt(int radix) 将输入的下一个标记扫描为 int 。 StringnextLine() 将此扫描仪推进到当前行并返回跳过的输入。 longnextLong() 将输入的下一个标记扫描为 long 。 longnextLong(int radix) 将输入的下一个标记扫描为 long 。 shortnextShort() 将输入的下一个标记扫描为 short 。 shortnextShort(int radix) 将输入的下一个标记扫描为 short 。 intradix() 返回此扫描仪的默认基数。 voidremove() Iterator的此实现不支持删除 Iterator 。 Scannerreset() 重设此扫描仪。 Scannerskip(Pattern pattern) 跳过与指定模式匹配的输入,忽略分隔符。 Scannerskip(String pattern) 跳过与指定字符串构成的模式匹配的输入。 StringtoString() 返回此 Scanner的字符串表示 Scanner 。 ScanneruseDelimiter(Pattern pattern) 将此扫描仪的分隔模式设置为指定的模式。 ScanneruseDelimiter(String pattern) 将此扫描器的分隔模式设置为从指定的构造的模式 String 。 ScanneruseLocale(Locale locale) 将此扫描仪的区域设置设置为指定的区域设置。 ScanneruseRadix(int radix) 将此扫描仪的默认基数设置为指定的基数。

5.3 java.io.Console

虚拟机是否具有控制台取决于底层平台以及虚拟机的调用方式。 如果虚拟机从交互式命令行启动,而不重定向标准输入和输出流,则其控制台将存在,并且通常将连接到启动虚拟机的键盘和显示器。 如果虚拟机是自动启动的,例如由后台作业调度程序启动,则通常不具有控制台。

如果这个虚拟机有一个控制台,那么它由一个这个类的唯一实例表示,可以通过调用System.console()方法获得。 如果没有控制台设备可用,则该方法的调用将返回null 。

读取和写入操作是同步的,以保证关键操作的原子完成; 因此调用方法readLine() , readPassword() , format() , printf()以及读,格式和写在由返回的对象的操作reader()和writer()在多线程方案可能阻塞。

对reader()和writer()返回的对象调用close()将不会关闭这些对象的基础流。

创建Console对象

Console con = System.console();

具体方法

Modifier and TypeMethod and Descriptionvoidflush() 刷新控制台并强制任何缓冲输出立即写入。 Consoleformat(String fmt, Object... args) 使用指定的格式字符串和参数将格式化的字符串写入此控制台的输出流。 Consoleprintf(String format, Object... args) 使用指定的格式字符串和参数将格式化的字符串写入此控制台的输出流的便利方法。 Readerreader() 检索与此控制台关联的唯一Reader对象。 StringreadLine() 从控制台读取一行文本。 StringreadLine(String fmt, Object... args) 提供一个格式化的提示,然后从控制台读取一行文本。 char[]readPassword() 从禁用回音的控制台读取密码或密码 char[]readPassword(String fmt, Object... args) 提供一个格式化的提示,然后从禁用回显的控制台读取密码或密码。 PrintWriterwriter() 检索与此控制台关联的唯一PrintWriter对象。

6.java格式化输出

System.out.format()

System.out.printf()

java.util.Formatter

构造方法

Constructor and DescriptionFormatter() 构造一个新的格式化程序。 Formatter(Appendable a) 使用指定的目的地构造一个新的格式化程序。 Formatter(Appendable a, Locale l) 构造一个具有指定目的地和区域设置的新格式化程序。 Formatter(File file) 使用指定的文件构造一个新的格式化程序。 Formatter(File file, String csn) 使用指定的文件和字符集构造一个新的格式化程序。 Formatter(File file, String csn, Locale l) 使用指定的文件,字符集和区域设置构造一个新的格式化程序。 Formatter(Locale l) 构造具有指定区域设置的新格式化程序。 Formatter(OutputStream os) 使用指定的输出流构造一个新的格式化程序。 Formatter(OutputStream os, String csn) 使用指定的输出流和字符集构造一个新的格式化程序。 Formatter(OutputStream os, String csn, Locale l) 使用指定的输出流,字符集和区域设置构造一个新的格式化程序。 Formatter(PrintStream ps) 使用指定的打印流构造新的格式化程序。 Formatter(String fileName) 构造具有指定文件名的新格式化程序。 Formatter(String fileName, String csn) 构造具有指定文件名和字符集的新格式化程序。 Formatter(String fileName, String csn, Locale l) 构造具有指定文件名,字符集和区域设置的新格式化程序。

方法

Modifier and TypeMethod and Descriptionvoidclose() 关闭此格式化程序。 voidflush() 刷新格式化程序。 Formatterformat(Locale l, String format, Object... args) 使用指定的区域设置,格式字符串和参数将格式化的字符串写入此对象的目标。 Formatterformat(String format, Object... args) 使用指定的格式字符串和参数将格式化的字符串写入此对象的目标。 IOExceptionioException() 返回此IOException最后抛出的IOException 。 Localelocale() 返回通过构建此格式化程序设置的区域设置。 Appendableout() 返回输出的目的地。 StringtoString() 返回在输出的 toString()上调用 toString()的结果。

static Formatter formatter = new Formatter(System.out);

public static void printTitle() {

formatter.format("%-15s %-15s %-10s\n", "huhx", "linux", "liuli");

formatter.format("%-15s %-15s %-10s\n", "zhangkun", "yanzi", "zhangcong");

formatter.format("%-15s %-15s %-10s\n", "zhangkun", "yanzhou", "zhangcong");

}

输出结果:

huhx            linux           liuli

zhangkun        yanzi           zhangcong

zhangkun        yanzhou         zhangcong

“ 格式说明符 ”的语法规则:

数字

转换符类型举例d十进制整数250f定点浮点数12.3s字符串helloc字符ab布尔型trueh散列码87c258e

标志

标记目的举例+打印正数和负数的符合12345.6(将负数括在括号内-12345.7,添加分组分隔符12,345.700数字前面用 0 补位123.45

日期

转换符类型举例c完整的日期和时间星期二 三月 28 11:00:52 CST 2017FISO 8601 日期2017/3/28D美国格式的日期(月/日/年)03/28/2017T24 小时时间11:00:52r12 小时时间11:00:52 AMR24 小时时间没有秒11:00Y4 位数字的年(前面补 0)2017y年的后两位数字(前面补 0)17C年的前两位数字(前面补 0)20B月的完整拼写Marchb 或者 h月的缩写Marm两位数字的月(前面补 0)3d两位数字的日(前面补 0)28e两位数字的月(前面不补 0)3A星期几的完整拼写Mondaya星期几的缩写Monj三位数中的年的日(前面补 0),在 0001 到 366 之间87H两位数字的小时(前面补 0),在 0 到 23 之间11k两位数字的小时(前面不补 0),在 0 到 23 之间11M两位数字的分钟(前面补 0)26S两位数字的秒(前面补 0)17L三位数字的毫秒413N九位数字的毫微秒413000000P上午或下午的大写标志AMp上午或下午的小写标志amz从 GMT 起,RFC822 数位位移800Z时区CSTs从格林威治时间 1970-01-01 00:00:00 起的秒数1490671516Q从格林威治时间 1970-01-01 00:00:00 起的毫秒数1.49067E+12

例如:

System.out.printf("%tc", new Date());

System.out.println();

System.out.printf("%tF", new Date());

System.out.println();

System.out.printf("%tT", new Date());

System.out.println();

System.out.printf("%tQ", new Date());

输出结果:

星期五 十一月 09 01:48:42 GMT+08:00 2018

2018-11-09

01:48:43

1541699323006

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值