1.
java.util.Scanner
构造器:
public Scanner(InputStream is)
可选参数System.in,也可用用BufferedInputStream装饰一下,在数据较多的时候稍有优化。
方法:
boolean hasNext() 用在多组数据时,while的判断处
String next() / int nextInt() / long nextLong() / float nextFloat() / double nextDouble()
String nextLine()
void close()
注意:next()系列方法与nextLine()方法连用时出现的问题
例1:s1=sc.next();s2=sc.next;
同行输入s1=1 s2=2.则此时s1="s1=1" s2="s2=2"
next()过滤有效字符前的空格与换行,即在上述输入s1=1前先空上几格与换上几行,结果不变,然后在输入有效字符后(s1=1)将空格换行等视为结束,所以s1=1后的空格代表s1读取结束,此时这个空格换成Entry结果不变,但最后需要在Entry后才完全确认,
看这个情况,s1=sc.next();输入s1=1 s2=2 s3=3Entry。结果此时s1="s1=1",后面两个与s1无关,有其他读取就读取。
例2:s1=sc.next();s2=nextLine();
同行输入s1=1Entry。此时输入结束s1="s1=1",s2=""。
同行输入s1=1 s2=2 (s3=3)Entry。此时s1="s1=1" s2="s2=2 (s3=3)"
区别:next()系列完成有效值输入后,以空格Entry作为结束,拿空格来说,当用空格结束后,在后面接一个next()系列方法,对这个方法而言,它还没完成有效值输入,所以是忽略这个空格的。而对nextLine()而言,则不同,它是对整行而言的,如果和next()连用的话,那么在next()的输入那一行,next()不管选不选择Entry,这一行同样作为nextLine()的读入行,可以理解为next在字符缓冲区拿走自己的有效值,剩下的就是nextLine()的了,那如果它以Entry结束,这个Entry是会作为两者的共同结束符的,此时会空串。而在第二个例子里就可以看出,在Entry之前,nextLine()读取了剩下的字符。
原理如上,在连用的时候,如果在next()系列方法下要接next(),那么可以在最后一个next()方法后,写个nextLine(),这个nextLine()就会与next()行共输入。
但这种情况,是建立在你的next()有效值完成输入就Entry的情况下,需要自己控制数据的输入(当然一般也如此),错误会发生在这种情况下:
s1=sc.next();sc.nextLine();s2=sc.nextLine();
输入s1=1 s2=2Entry
这种情况设计也存在问题,若是把s2=2当做期望的s2有效值,那么现在肯定是读取不到了,它被中间那个读走了,而且读走的不止是s2=2,还有前面那个空格。这种情况只是一说。实际还是注意连用的时候用这种方法抵掉Entry,然后在第二行输入s2=2,完成。
2.
java.lang.String
构造器:
可以传入的参数有 byte[] , char[] , String对象("字符串"or别的字符串引用) ,StringBuffer对象 ,StringBuilder对象
方法:
1.字符串转char[]数组/byte[]数组
public char[] toCharArray()/public byte[] getBytes()/public byte[] getBytes(Charset charset)
2.通过更改引用更改String
String concat(String str)
String substring(int start,int end)//不含end
String replace(char old,char new)
String toLowerCase()/toUpperCase()
String trim()
3.检索相关
char charAt(int index)
int indexOf(int ch)
int indexOf(String str)
3.
基本类型的封装类,以Integer为例
java.lang.Integer
构造器:
参数为int值或者String对象
方法:
static int parseInt(String s)
static int parseInt(String s,int radix)
static String toBinaryString(int i)
static String toHexString(int i)
static String toString(int i)
1.String转int,用Integer的parseInt()
2.int转String,用String的valueOf(int i)或Integer的toString(int i)
4.
java.text.DecimalFormat
构造器:
DecimalFormat(String pattern)
pattern:
0表数字,小数点高位低位不足都保留,高位超出正常显示,低位超出,小数位固定,四舍五入。
#同上,只是在没有的时候不显示。
固定小数位就用0就行。
用实例化的对象调用format()方法,参数里填数。
5.
java.util.Arrays
1.copyOf(original,newLength)系列方法,加入一个original类型的数组,扩充至新长度,返回该数组引用。
static int[] copyOf(int[] original,int newLength)
2.sort(a)系列方法,对a类型数组进行排序(默认升序)
static void sort(int[] a)
static <T> void sort(T[] a,Comparator<? super T> c)
6.
java.math.BigInteger
构造器:
BigInteger(String val)
方法:
1. add() , subtract() , multiply() , divide() , mod()
2. max() , min() , abs() ,
上述的返回值和参数都是BigInteger对象
3. String toString()
4. int compareTo(BigInteger val)
7.
……