JavaString


public class top24 {
    //下面来练习一下字符串的几种格式
    public static void main(String[] args) {

        //第一种写法
        String s0="abc";
        System.out.println(s0);
        //第二种写法
        String s1 = new String("abc");
        System.out.println(s1);
        //第三种创建字符串数组
        char s2[]={'a','b','c'};//创建一个char类型的数据
        String s3 =new String (s2);//将数据内容赋值给s3
        System.out.println(s3);
        //第四种 byte 方式
        byte b[]={97,98,99};
        String s4 = new String(b);
        System.out.println(s4);//注意在使用byte的数据的时候转换成字符串他是转换的Asllc方式在展现出的

        //下面来一个字符串比较方法
        //现在展示第一种
        //先定义俩字符串
        String a1 = "abc";
        String a2 = new String("abc");
        //正常比较的时候可以看一下
        System.out.println(a1=a2);//他的结果为false
        //介绍一下equals
        boolean bijiao1= a1.equals(a2);
        System.out.println(bijiao1);//equals 是直接比较的字符串的值
        //第二种equalsIgnoreCase

        String x1 = "abc";
        String x2 = new String("Abc");
        boolean bijiao2= x1.equalsIgnoreCase(x2);//这个可以忽略大小写适用于验证码
        System.out.println(bijiao2);

    }
}

小练习 账户登录系统
import java.util.Scanner;

public class top25 {
    //模拟用户登录账户密码,总公给三次机会,登录之后给出相应的提示
    public static void main(String[] args) {
        //先定义一个正确的账号密码
        String rightUsername = "zhangsan";
        String rightPassword = "123456";

        //接下来开始判断,但是还得累计次数当不能超过三次 定义一个次数count
        //int count = 0;

        for(int count =0 ; count <3;count++){
            //scanner交互输入账户密码
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入您的账户");
            String UserName = sc.next();
            System.out.println("请输入您的密码");
            String Password = sc.next();
            
            if (UserName.equals(rightUsername) && Password.equals(rightPassword)) {
                System.out.println("登录成功");
                break;
            } else if (UserName.equals(rightUsername)) {
                System.out.println("您的密码输入错误");
            } else if (Password.equals(rightPassword)) {
                System.out.println("您的账号输入错误");
            }
            //超出三次机会直接提醒
            if (count >=3) {
                System.out.println("三次机会已过");
            }
        }
    }
}

遍历字符串
import java.util.Scanner;

public class top26 {
    public static void main(String[] args) {
        //字符串遍历
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        //定义一个字符串
        String str= sc.next();
        //这个地方介绍一下charAt(0),用字符串来调用这个方法,他跟数组的用法一样,后面填写索引
        char c =  str.charAt(0);
        System.out.println(c);
        //所以可以尝试一下for循环,遍历字符串
        //因为这个是在调用方法所以说只能是length+()。
        for (int i = 0; i < str.length(); i++) {
          System.out.println(str.charAt(i));   
        }
    }

}


import java.util.Scanner;

public class top27 {
    public static void main(String[] args) {
        //键盘录入字符串,统计字符串中的大写字母出现几次,小写出现几次,数组出现几次
        Scanner sc =new Scanner(System.in);
        System.out.println("输入字符串");
        String str = sc.next();
        //定义三个变量统计次数
        int BIGcount=0;
        int mincount=0;
        int numcount =0;
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            //这个地方会去查询aslla表实际上是在对 a =98 往上在作比较
            if (c >='a' && c <= 'z'){
               mincount= mincount +1;
               //现在是在比较字符,都是通过assla表来进行判断的
            }else if (c >='0' && c <='9'){
               numcount=  numcount+1;
            }else if(c >='A' && c <='Z'){
                BIGcount=  BIGcount+1;
            }
        }
        System.out.println("您的字符串是大写的偶"+BIGcount+"您的字符串是小写的偶"+mincount+"数字有"+numcount);
    }
}

反转字符串
import java.util.Scanner;

public class top28 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter a string: ");
        String str = sc.nextLine();

        System.out.println(stringTest(str));
    }

    public static String stringTest(String str) {
        // 创建一个 StringBuilder 对象来存储反转后的字符串
        StringBuilder reversed = new StringBuilder();

        // 倒序遍历原始字符串,将每个字符添加到 StringBuilder 中
        for (int i = str.length() - 1; i >= 0; i--) {
            reversed.append(str.charAt(i));
        }

        // 将 StringBuilder 对象转换为 String 并返回
        return reversed.toString();
    }
}

金额转换题
import java.util.Scanner;

public class top29 {
    public static void main(String[] args) {
        //这一题来说一个整数传换成大写中文
        Scanner sc = new Scanner(System.in);
        //定义一个变量用来存储这个数字
        int money = 0;
        //得判断数字是否合法
        //使用while如果不对就会继续重新输入
        while (true) {
            //请输入金额
            System.out.println("请输入金额");
            money = sc.nextInt();
            if (money >= 0 && money <= 9999999) {
                break;
            } else {
                System.out.println("金额的格式有问题");
            }
        }
        System.out.println(money);
        //得到money的每一位数字
        String moneyStr = "";//这个变量用来接受拼接的大写字符串
        while (true) {
            int ge = money % 10;//这个就可以得到数字的各位,在之前的练习题里面有讲过类似的,假如这个数字为235 %10之后就之剩下了5
            String CapitalNumber = getCapitalNumber(ge);//这个变量用来就是将每一次的ge都传递给getCapitalNumber方法并赋值给CapitalNumber
            moneyStr = CapitalNumber + moneyStr;//将每次的 CapitalNumber的大写数字都传递给moneyStr  在加上moneyStr 拼接字符
            //还有一个问题就是CapitalNumber要写在前面,举例
            /*假如传递一个2135,5传递进来,此时moneyStr还是空的,现在moneyStr 就变成了伍
            之后3在传递进来此时moneyStr已经变成了伍,让后传递的往前走,也就是叁,在进行拼接就是叁伍
            以此类推,自己可以做一个小实验来证明一下这个
            */


            //之后在假如这个数字还是235 再去去掉这个5,money在取出个为之后 ,就变成了23 在去继续去除
            money = money / 10;
            //如果money等于0的也是后也就全部取出了
            if (money == 0) {
                break;
            }
        }

        //在前面补零
        //定义一个变量用来存储需要补几个零
        int count = 7 - moneyStr.length();//int最大就是7位
        for (int i = 0; i < count; i++) {
            moneyStr = "零" + moneyStr;
        }
        System.out.println(moneyStr);

        //插入单位
        //定义一个字符串用来存储最终效果
        String result = "";
        //定义一个数组
        String arr[] = {"佰", "拾", "万", "千", "佰", "拾", "元"};
        //利用循环来拼接
        for (int i = 0; i < moneyStr.length(); i++) {
            char c = moneyStr.charAt(i);//这个笔记之前有记过,就是将索引i 赋值给 char类型的c
            result = result + c + arr[i];
        }
        System.out.println(result);
    }

    //定义一个方法用来吧数字变成中文大写
    public static String getCapitalNumber(int number) {
        //定义一个数组产生跟数字跟中文数字之间的关系

        String arr[] = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "扒", "玖"};
        return arr[number];//方法在调用的时候输入这个number数字来对应数组内的索引,0就是对应零,以此类推
    }
}

手机号隐藏
public class top30 {
    public static void main(String[] args) {
        //介绍一下substaring,隐藏手机号中间四位
        //先定义一个手机号码
        String phoneNumber = "15127988973";
        //截取一下前三位
        String start= phoneNumber.substring(0,3);//这个方法是有头无尾的!切记0索引开始的,就是截取0到2索引的,在将他赋值给一个新的变量
        System.out.println(start);
        //截取后四位
        String stop = phoneNumber.substring(7);//当在只使用一个数字的时候就会一直截取你定位的索引一直到末尾
        System.out.println(stop);
        //在拼接起来
        String result = start + "****"+ stop;
        System.out.println(result);

    }
}

身份证信息获取
public class top31 {
    //要求根据身份证号打印一个人的信息,出生日期,性别
    public static void main(String[] args) {
        //先定义一个字符串用来存储身份证号
        String id = "130527200306111217";
        //使用substaring来截取字符串信息
        String year = id.substring(6, 10);
        String month = id.substring(10,12);
        String day = id.substring(12,14);
        System.out.println("您的信息为");
        System.out.println("您的出生日期为"+year+"年"+month+"月"+day+"日");
        //再来获取性别
        char gender = id.charAt(16);
        //将字符串来转换成int,来判断是男是女
        //这个地方利用ASCII来做转换
        //0在表中代表的是48
        int number = gender - 48;
        if (number % 2 ==0){
            System.out.println("性别是女");
        }else {System.out.println("性别是男");}
    }
}

敏感屏蔽
import java.time.temporal.TemporalAccessor;

public class top32 {
    //介绍一个新的方法replace,字符串替换
    public static void main(String[] args) {
        String talk = "你游戏玩的太好了,MLGB,TMD";
        //把后面的字给他替换掉
        String result = talk.replace("tmd", "***");//前面为替换之前,后面为替换之后
        System.out.println(result);
        //再来扩展一个,定义一个敏感词的词库
        String arr[] = {"TMD", "CNM", "MLGB"};
        //再来写一个循环让他们都替换掉
        for (int i = 0; i < arr.length; i++) {
            talk = talk.replace(arr[i], "***");//将每一个跟字符串数组内对应的敏感词利用循环都给替换掉
        }
        System.out.println(talk);
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值