其他分享
首页 > 其他分享> > 细小知识总结

细小知识总结

作者:互联网

细小知识总结

一、next() , nextInt()与nextLine()方法区别:

他们三个都属于Scanner的内置方法,首先,Scanner是一个扫描器,它扫描数据都是去内存中一块缓冲区中进行扫描并读入数据的, 而我们在控制台中输入的数据也都是被先存入缓冲区中等待扫描器的扫描读取,这个扫描器在扫描过程中判断停止的依据就是“空白符”,空格啊,回车啊

运行结果为:
在这里插入图片描述

使用nextLine()方法如下:

public class Example {
       public static void main(String args[]){
           Scanner sc=new Scanner(System.in);
             System.out.println("使用nextLine()方法,并且输入为:");
             String n=sc.nextLine();
             System.out.println("输出为:");
             System.out.println(n);
       }
   }

运行结果为:

在这里插入图片描述

二、toSrting()与String.valueOf()方法对比

String.valueOf()和toString()方法大致相同

toString()

Object类的toString方法意为返回该对象的字符串表示,若为null则报错,抛出异常java.lang.NullPointerException

String.valueOf()

与toString()类似,唯一区别是先判断是否为null,若不为null则等同于toString(),若为null则返回null的字符串表示

String.valueOf() 比起直接用 toString() 来说虽然可能会减少报错的机会,但是要注意的是对象的类型是否符合。

若对象为Integer 类型,不能转换成 String 类型,则在编译期间就会报错Cannot cast from Integer to String。

如果要把 Integer 型转换成 String,可以调用其 toString()方法:Integer.toString(obj1) 或者 String.valueOf(obj1); 对应于其他自定义类型,则调用自己重写的 toString() 方法。

此外,因null值可以被强制转换为任何类型,所以(String)null也是合法的。

同理,Integer.valueOf(String)为返回该对象的Int类型

三、parseInt()方法

parseInt(string, radix)方法用于解析字符串,并返回一个整数。

public static int parseInt(String s, int radix)
//s是要转换的数字的字符串形式
//radix是其原始进制
int num = Integer.parseInt("ABCDEF", 16);
            System.out.printf("%15d",num);

四、#o与#x

#o意为输出八进制数

#x意为输出十六进制数

 System.out.printf("%#o", x);//#o为输出八进制数
    System.out.print(' ');
    System.out.printf("%#X", x);//#X为输出十六进制数
}

五、parseInt(String)/parseDouble(String)

parseInt(String)将括号内字符串转换为int值

parseDouble(String)将括号内字符串转换为double值

int id=Integer.parseInt(data[0]);//将()内的字符串转换为Int值如.parseInt(String)
double score1=Double.parseDouble(data[1]);

六、split()方法

方法用于将字符串分割为字符数组

若split(",")表示字符串以逗号分割为数组

split("[;,]")表示字符串以分号和逗号分割为数组

//使用;或,分隔输入数据
String[] data = scanner.nextLine().split("[;,]");
//split表示把一个字符串分割成字符串数组
//data[0]为第一个数组元素,依次类推

七、BYTES方法

输出不同整型数据类型在内存中占多大(字节)

其中Short.SIZE意为返回short所占比特位,除8为求其字节数

Integer.BYTES意为返回其所占字节数,不用除以8

 public class Main{
    public static void main(String[] args){
        System.out.println("The size of short is " + Short.SIZE / 8 + " bytes.");
        System.out.println("The size of int is " + Integer.BYTES + " bytes.");
        System.out.println("The size of long is " + Long.BYTES + " bytes.");
        System.out.println("The size of long long is " + Long.SIZE / 8 + " bytes.");
    }
}

八、read()方法

在Java8中,InputStream被定义为一个抽象类,相应的,该类下的read()方法也是一个抽象方法,这也就意味着必须有一个类继承InputStream并且实现这个read方法。
查阅Java8 API,我们可以看到,在InputStream中定义了三个重载的read()方法

在这里插入图片描述

没有参数的read方法,从(来源)输入流中(读取的内容)读取数据的下一个字节到(去处)java程序内部中,返回值为0到255的int类型的值,返回值为字符的ACSII值(如a就返回97,n就返回110).如果没有可用的字节,因为已经到达流的末尾, -1返回的值,运行一次只读一个字节,所以经常与while((len = inputstream.read()) != -1)一起使用.

    public static void main(String[] args) throws IOException {
        System.out.println(System.in.read());
        //使用read()方法读取一个字符,返回值为int
    }

九、charAt()方法

java.lang.String.charAt()返回指定索引处的char值,索引范围是0——length-1,若有异常则抛出IndexOutOfBoundsException

System.out.print(str.charAt(str.length()-i-1));
                

十、hasNext()方法

hasNext()返回的是boolean类型

sc.hasNext()可以理解为把我们输入的值存到了sc当中,sc中有值时返回true,没有值时为false,此时sc有值,所以才进入循环,然后再输出ABC。

Scanner sc = new Scanner(System.in);
       while(sc.hasNext()){
           System.out.println("ABC");
           int s = sc.nextInt();

    }

标签:总结,String,int,知识,System,sc,字符串,细小,out
来源: https://blog.csdn.net/weixin_45949645/article/details/111480900