0
点赞
收藏
分享

微信扫一扫

String常用API(附超详细实例)持续更新ing...

三分梦_0bc3 2022-03-26 阅读 98

字符串内容的比较:

方法名说明
public bloolean equals(Object anObject)将此字符串与指定对象进行比较,只关心字符内容是否一样
public bloolean equalsIgnoreCase(String anotherString)将此字符串与指定对象进行比较,忽略大小写比较字符串。只关心字符串内容是否一致

代码示例:
错误的:用"=="比较字符串的内容

package cn.爱睡觉的瘦子.练习;

import java.util.Scanner;

public class example {
    public static void main(String[] args) {
        String okname = "爱睡觉的瘦子";
        String okpasswd = "123456";
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入用户名:");
        String name = sc.next();
        System.out.print("请输入密码:");
        String passwd = sc.next();
        if(okname == name && okpasswd == passwd){
            System.out.println("登录成功!");
        }
        else {
            System.out.println("登录失败!");
        }
    }
}

输出:

请输入用户名:爱睡觉的瘦子
请输入密码:123456
登录失败!

错误原因:‘==’是用来比较地址是否相同的!而代码中的okname 、 name 和 okpasswd 、 passwd。分别指向不同的对象,地址不同。

正确的:

package cn.爱睡觉的瘦子.练习;

import java.util.Scanner;

public class example {
    public static void main(String[] args) {
        String okname = "爱睡觉的瘦子";
        String okpasswd = "123456";
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入用户名:");
        String name = sc.next();
        System.out.print("请输入密码:");
        String passwd = sc.next();
        if(okname.equals(name) && okpasswd.equals(passwd)){
            System.out.println("登录成功!");
        }
        else {
            System.out.println("登录失败!");
        }
    }
}

输出:

请输入用户名:爱睡觉的瘦子
请输入密码:123456
登录成功!
  • public bloolean equalsIgnoreCase(String anotherString)方法经常用来检测验证码是否正确

所以写了一段代码用来随机生成验证码:

package cn.爱睡觉的瘦子.随机验证码;
import java.util.Random;
public class GetString {
    /*
    不输入参数的话默认获得长度为5的验证码
    */
    public String Get(){
        String l = Get(5);
        return l;
    }

    public String Get(int length){
        String l = "";//定义一个空字符串
        Random ran = new Random();//生成随机数
        for (int i = 0; i < length; i++) {
            int j = ran.nextInt(3);
            /*既然是随机生成的验证码那么每一位的种类也要随机
            如果j = 0,那就随机生成大写字母
            如果j = 1,那就随机生成小写字母
            如果j = 2,那就随机生成数字
            */
            switch (j){
                case 0://利用ASCII强制类型转换
                    l += (char)(ran.nextInt(25)+65);
                    break;
                case 1:
                    l += (char)(ran.nextInt(25)+97);
                    break;
                case 2:
                    l += ran.nextInt(10);
                    break;
            }
        }

        return l;
    }
}

在Test类中进行测试:

package cn.爱睡觉的瘦子.随机验证码;
import java.util.Scanner;
public class Test {
    public static void main(String[] args) {
        GetString g = new GetString();
        String okStr = g.Get();
        System.out.println("验证码:"+okStr);
        Scanner s = new Scanner(System.in);
        System.out.print("请输入验证码:");
        String Str = s.next();
        System.out.println(okStr.equalsIgnoreCase(Str));
    }
}

输出:

验证码:BQS7v
请输入验证码:bqs7v
true

字符串长度

  • public int length()
    代码示例:
package cn.爱睡觉的瘦子.练习;

public class example {
    public static void main(String[] args) {
        String str = "123456";
        System.out.println(str.length());
    }
}

输出:

获取某个索引位置处的字符(从零开始)

  • public char charAt (int index)
    代码示例:
package cn.爱睡觉的瘦子.练习;

public class example {
    public static void main(String[] args) {
        String str = "123456";
        System.out.println(str.charAt(0));
        System.out.println(str.charAt(1));
        System.out.println(str.charAt(5));

    }
}

输出:

将当前字符串转换成字符数组返回

  • public char[] toCharArray():
    代码示例:
package cn.爱睡觉的瘦子.练习;

public class example {
    public static void main(String[] args) {
        String str = "我爱java";
        char[] a = str.toCharArray();
        System.out.print("[");
        for (int i = 0; i < str.length(); i++) {
            System.out.print(i==str.length()? a[i] : a[i]+",");
        }
        System.out.println("]");
    }
}

输出:

很据开始和结束索引进行截取,得到新的字符串(包前不包后)

  • public String substring(int beginIndex, int endIndex):
    代码示例:
package cn.爱睡觉的瘦子.练习;

public class example {
    public static void main(String[] args) {
        String str = "我爱java";
        System.out.println(str.substring(0, 2));
        System.out.println(str.substring(2, 6));
    }
}

输出:

从传入的索引处截取,截取到末尾,得到新的字符串

  • public String substring(int beginIndex)
    代码示例:
package cn.爱睡觉的瘦子.练习;

public class example {
    public static void main(String[] args) {
        String str = "我爱java";
        System.out.println(str.substring(1));
        System.out.println(str.substring(3));
    }
}

输出:

根据传入的规则切割字符串,得到字符串数组返回

  • public String[] split(String regex)
    代码示例:
package cn.爱睡觉的瘦子.练习;

public class example {
    public static void main(String[] args) {
        String str = "我,爱,java";
        String[] str2 = str.split(",");
        for (int i = 0; i < str2.length; i++) {
            System.out.print(str2[i]);
        }
    }
}

输出:

举报

相关推荐

0 条评论