Scanner和String类

Scanner类

  1. 概述:Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。

  2. Scanner的构造方法:
    Scanner(InputStream source)
    System类下有一个静态的字段:
    public static final InputStream in; 标准的输入流,对应着键盘录入

  3. 录入:
    可以录入整数小数
    nextInt()
    将输入信息的下一个标记扫描为一个 int。
    double nextDouble ()
    将输入信息的下一个标记扫描为一个 double

import java.util.Scanner;

public class Test8 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数字");
        int num=sc.nextInt();
        System.out.println(num);
    }
}

  1. 注意事项:录入字符串的时候使用next();会导致输入的字符串有空格的时候,空格之后的字符录不进去
import java.util.Scanner;

public class Test8 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符串");
        String str=sc.next();
        System.out.println(str);

    }
}

在这里插入图片描述

一般使用nextLine();输入字符串

import java.util.Scanner;

public class Test8 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符串");
        String str=sc.nextLine();
        System.out.println(str);

    }
}

在这里插入图片描述

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

import java.util.Scanner;

public class Test8 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入一个整数");
        int num=sc.nextInt();
        System.out.println(num);

        System.out.println("请输入字符串");
        String s = sc.nextLine();
        System.out.println(s);


    }
}

在这里插入图片描述

import java.util.Scanner;

public class Test8 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入一个整数");
        int num=sc.nextInt();
        System.out.println(num);


        sc = new Scanner(System.in);

        System.out.println("请输入字符串");
        String s = sc.nextLine();
        System.out.println(s);


    }
}

在这里插入图片描述

  1. hasNext×××();用与判断系统输入的是否是×××类型

String类

  1. 概述:
    字符串是由多个字符组成的一串数据(字符序列)
    a:字符串字面值"abc"也可以看成是一个字符串对象。
    b:字符串是常量,一旦被创建,就不能被改变。

  2. String类的构造方法:
    public String():空构造

    public String(byte[] bytes):把字节数组转成字符串

    public String(byte[] bytes,int index,int length):把字节数组的一部分转成字符串(index:表示的是从第几个索引开始, length表示的是长度)

    public String(char[] value):把字符数组转成字符串

    public String(char[] value,int index,int count):把字符数组的一部分转成字符串

    public String(String original):把字符串常量值转成字符串

public class Test8 {
    public static void main(String[] args) {

        String s = new String();
        s="123abc";
        System.out.println(s);

        byte []arr={40};
        String s1 = new String(arr);
        System.out.println(s1);

        String s2 = new String(arr, 0, 1);
        System.out.println(s2);

        char []arr1={'a','c','e'};
        String s3 = new String(arr1);
        System.out.println(s3);

        String s4 = new String(arr1, 0, 2);
        System.out.println(s4);

        String s5 = new String("hahaha");
        System.out.println(s5);

    }
}

在这里插入图片描述

  1. 字符串创建后不能改动的内存解析
    在这里插入图片描述

  2. String类的判断功能:
    public boolean equals(Object obj): 比较字符串的内容是否相同,区分大小写
    public boolean equalsIgnoreCase(String str): 比较字符串的内容是否相同,忽略大小写
    public boolean contains(String str): 判断字符串中是否包含传递进来的字符串
    public boolean startsWith(String str): 判断字符串是否以传递进来的字符串开头
    public boolean endsWith(String str): 判断字符串是否以传递进来的字符串结尾
    public boolean isEmpty(): 判断字符串的内容是否为空串""。

 public static void main(String[] args) {
        

        String s = new String("Today");
        boolean b1=s.equals("today");
        System.out.println(b1);
        
        boolean b2=s.equalsIgnoreCase("today");
        System.out.println(b2);

        boolean b3=s.contains("dy");
        System.out.println(b3);

        boolean b4=s.startsWith("T");
        System.out.println(b4);

        boolean b5=s.endsWith("h");
        System.out.println(b5);

        boolean b6=s.isEmpty();
        System.out.println(b6);

    }

在这里插入图片描述

  1. 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): 返回指定字符串在此字符串中从指定位置后第一次出现处的索引。

    public String substring(int start): 从指定位置开始截取字符串,默认到末尾。
    public String substring(int start,int end): 从指定位置开始到指定位置结束截取字符串。(含头不含尾)

public class Test8 {
    public static void main(String[] args) {

        String str="bbbccc112233";
        char c = str.charAt(6);
        int i = str.indexOf('2');
        int i1 = str.indexOf("bc");
        int i2 = str.indexOf("b", 2);
        int i3 = str.indexOf('2', 8);
        String substring = str.substring(4);
        String substring1 = str.substring(4, 6);
        System.out.println(c);
        System.out.println(i);
        System.out.println(i1);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println(substring);
        System.out.println(substring1);

    }
}

在这里插入图片描述

  1. String类的转换功能:
    public byte[] getBytes(): 把字符串转换为字节数组。
    public char[] toCharArray(): 把字符串转换为字符数组。
    public static String valueOf(char[] chs): 把字符数组转成字符串。
    public static String valueOf(int i): 把int类型的数据转成字符串。
    注意:String类的valueOf方法可以把任意类型的数据转成字符串。
    public String toLowerCase(): 把字符串转成小写。
    public String toUpperCase(): 把字符串转成大写。
    public String concat(String str): 把字符串拼接。
import java.util.Arrays;

public class Test8 {
    public static void main(String[] args) {

        String str="bbbccc112233";
        byte[] bytes = str.getBytes();
        System.out.println(Arrays.toString(bytes));

        char[] chars = str.toCharArray();
        System.out.println(Arrays.toString(chars));

        char []arr={'a','c','e'};
        String s = String.valueOf(arr);
        System.out.println(s);

        int a=3;
        String s1=String.valueOf(a);
        System.out.println(s1);


        //str="bbbccc112233";
        String s2 = str.toUpperCase();
        System.out.println(s2);

        String str1="AAABBBCCC123";
        String s3 = str1.toLowerCase();
        System.out.println(s3);

        String concat = str.concat(str1);
        System.out.println(concat);

    }
}

在这里插入图片描述

  1. String类的其他功能:
    public String replace(char old,char new) 将指定字符进行互换
    public String replace(String old,String new) 将指定字符串进行互换

    public String trim() 去除两端空格

    public int compareTo(String str) 会对照ASCII 码表 从第一个字母进行减法运算 返回的就是这个减法的结果
    如果前面几个字母一样会根据两个字符串的长度进行减法运算返回的就是这个减法的结果
    如果连个字符串一摸一样 返回的就是0
    public int compareToIgnoreCase(String str) 同上但忽略大小写

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值