秋招准备-Java-OJ常用方法与类

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.

    ……

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值