JavaSE-Scanner和String


提示:以下是本篇文章正文内容,下面案例可供参考

一、Scanner

(1)作用:用于获取用户的键盘输入,用户用键盘录入自己的数据。

(2)形式:

Scanner sc = new Scanner(System.in);

其中sc是自己命名的

1.1 scanner 类的 nextXxx()方法:

1.Xxx的类型:

Xxx代表录入的各种数据的类型,可以有

nextInt()—代表录入整数

nextDouble()—代表录入小数

next()—代表录入字符串,如果字符串中包含空格,那么在遇到第一个空格之后的内容就不再录入了

nextLine()—代表录入字符串,即使字符串中有空格也不影响,可全部录入

注意:Xxx系列的首字母要大写

2.创建屏幕录入对象

举例:

public class Demo2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数");
        int i = sc.nextInt();
        System.out.println("你输入的是"+i);
    }
}

结果:

请输入一个整数
2
你输入的是2

3.当你先录入整数后,再录入字符串时(nextLine()) 会出现字符串录入不到,那么解决方法,可以重写创建一个Scanner对象

举例:

Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数");
 int num = sc.nextInt();
System.out.println("请输入字符串");
sc=new Scanner(System.in);
String text = sc.nextLine();
System.out.println("你输入的内容是:"+text+"===="+num);

2. scanner的hasnextXxx()方法:

1.Xxx的类型:

同nextXxx()方法一样

2.hasnextXxx的特点:

可以判断我需要的类型是否和用户输入的类型一样

3.举例:

public class ScannerDemo2 {
    public static void main(String[] args) {
        System.out.println("请输入一个整数");
        while (true){
            Scanner sc = new Scanner(System.in); //每一次都创建一个新的对象
            if (sc.hasNextInt()) {
                int i = sc.nextInt();
                System.out.println(i);
                break;
            } else {
                System.out.println("你输入的类型不正确,请重新输入");
            }
        }
    }
}

4.使用hasNextXxx()方法创建的对象的类型是Boolean,输出结果只有true和false

public class Demo3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        boolean b = sc.hasNextInt();
        System.out.println(b);
    }
}

结果分析:输入int类型的数据结果为true,否则为false

二、String(字符串)

(1)概述:

字符串是由多个字符组成的一串数据(字符序列),字符串可以看成是字符数组。String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。

(2)特点:

字符串是常量,一旦被创建,就不能被改变。因为字符串的值是在方法区的常量池中划分空间 分配地址值的-*+

(3)string类的构造方法:

1.public String():空构造
​ 2.public String(byte[] bytes):把字节数组转成字符串
​ 3.public String(byte[] bytes,int index,int length):把字节数组的一部分转成字符串(index:表示的是从第几个索引开始, length表示的是长度)4.public String(char[] value):把字符数组转成字符串
​ 5.public String(char[] value,int index,int count):把字符数组的一部分转成字符串
​ 6.public String(String original):把字符串常量值转成字符串

举例:

public class StringDemo2 {
    public static void main(String[] args) {
        //String 类中的构造方法
        //String( byte[] bytes ) 把一个字节数组转成字符串
        byte[] bytes={97,98,99,100};
        String s = new String(bytes); //把字节数组转成字符串
        System.out.println(s);

       // String( byte[] bytes, int offset, int length) 把一个字节数组的一部分转换成字符串

        byte[] bytes2 = {97, 98, 99, 100,101,102,103,104};
        //从数组中的5索引开始,转3个
        String s1 = new String(bytes2,5,3);
        System.out.println(s1);

        System.out.println("------------------------------");

       // String( char[] value) 把一个字符数组转换成字符串
        char[] chars={'a','b','d','你','好','吗'};
        String s2 = new String(chars);
        System.out.println(s2);

        //String( char[] value, int offset, int count) 把字符数组的一部分转换成字符串
        //从3索引处转3个字符
        String s3 = new String(chars, 3, 3);
        System.out.println(s3);

        //字符串:有多个字符组成的字符序列

        //字符串,也是有索引的,从0开始  "abcdef"

        //获取字符串长度的方法 length()
        String s4 = new String("abcdef");
        int length = s4.length();
        System.out.println(length);
    }
}

(4)string类的获取功能:

public int length(): 获取字符串的长度。
public char charAt(int index): 获取指定索引位置的字符
public int indexOf(int ch): 返回指定字符在此字符串中第一次出现处的索引。
public int indexOf(String str): 返回指定字符串在此字符串中第一次出现处的索引。
public int indexOf(int ch,int fromIndex):返回指定字符在此字符串中从指定位置后第一次出现处的索引。
public int indexOf(String str,int fromIndex): 返回指定字符串在此字符串中从指定位置后第一次出现处的索引。
可以顺带提一下lastIndexOf系列
public String substring(int start): 从指定位置开始截取字符串,默认到末尾。
public String substring(int start,int end): 从指定位置开始到指定位置结束截取字符串。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王妖怪2109

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值