当前位置:首页 » 《我的小黑屋》 » 正文

Java中的String字符串练习

28 人参与  2024年03月30日 10:05  分类 : 《我的小黑屋》  评论

点击全文阅读


目录

Java中的String字符串练习

01-用户登录

02-遍历字符串并统计字符个数

03-字符串拼接

04-字符串反转

注意点

05-金额转化(简单)

代码解释:

06-手机号屏蔽

07-身份证号码查看

易错点:

08-敏感词替换


01-用户登录

package com.xiaonan.exercise06;import java.util.Scanner;public class Demo01 {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        //特别注意 next的字符串是new出来的        //String s = sc.next();        //以后想要比较字符串的内容  就必须要使用String里的方法 equal 或者equal...(忽略字母的大小写)        String id = "莫华南";        String idCode = "Aa123456789";        //一共三次机会        int flag = 3;        for (int i = 0; i < 3; i++) {            System.out.println("请输入您的id");            String userId = sc.next();            System.out.println("请输入您的密码");            ///String userIdCode = sc.next();            String userIdCode = sc.next();            //验证id 和密码            if(id.equals(userId) && idCode.equals(userIdCode)){                System.out.println("登录成功!");                break;            }else if(flag==1){                System.out.println("登录失败,账户被锁定");            }else{                System.out.println("您的id或者密码错误,请重新输入"+"剩下("+(--flag)+")次机会");                continue;            }        }    }}

02-遍历字符串并统计字符个数

package com.xiaonan.exercise06;import java.util.Scanner;public class Demo02 {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        //键盘录入一个字符串        String s = sc.nextLine();        //遍历字符串        // 统计大写字母的个数        int bigLetterCount = 0;        // 统计小写字母的个数        int smallLetterCount = 0;        // 统计数字字符的个数        int dightCount = 0;        for (int i = 0; i < s.length(); i++) {            //s.length() 这个是方法 计算字符串的长度            //s.charAt(int index) 这个也是方法 index是字符串的索引 charAt(int index) 拿出字符串里的每一个字符            char c = s.charAt(i);            if(c>='A' && c<='Z'){                //char类型的变量 在参与运算的时候 自动类型提升为int 查询ASCII表                bigLetterCount++;            }else if(c>='a' && c<='z'){                smallLetterCount++;            }else if(c>='0' && c<='9'){                dightCount++;            }        }        //输出        System.out.println(bigLetterCount+","+smallLetterCount+","+dightCount);    }}

03-字符串拼接

package com.xiaonan.exercise06;public class Demo03 {    public static void main(String[] args) {        //定义一个数组        int[] arr = {1, 2, 3, 4, 5, 6};        String s = jointString(arr);        //输出打印        for (int i = 0; i < s.length(); i++) {            char c = s.charAt(i);            System.out.print(c);        }        System.out.println();    }    //拼接字符串    public static String jointString(int[] arr) {        //先加一个 判断数组是否为空        if (arr == null) {            return "";        }        // 判断数组长度是否为0        if (arr.length == 0) {            return "[]";        }        String s = "[";        for (int i = 0; i < arr.length; i++) {            //解释            /**             * 在Java中,当一个字符串与其他类型的数据进行连接操作时,Java会自动将其他类型的数据转换为字符串。             * 这个过程称为字符串的拼接或字符串的连接。             *             * 在代码中,表达式s = s + 12;中,整数12会自动转换为字符串"12",             * 然后与字符串s连接在一起,形成新的字符串"[12"。             */            if(i==arr.length-1){                s = s + arr[i];            }else{                s = s + arr[i] +",";            }        }        s = s + ']';        return s;    }}

04-字符串反转

package com.xiaonan.exercise06;public class Demo04 {    public static void main(String[] args) {        String result = reverser("123456789");        System.out.println(result);    }    //1. 反转字符串    public static String reverser(String str){        //定义一个字符串        String result = "";        for (int i = str.length()-1; i >= 0; i--) {            char c = str.charAt(i);            result = result + c;        }        return result;    }}

注意点

toCharArray() 是Java中的一个方法,它用于将字符串转换为字符数组。

方法签名如下:

public char[] toCharArray()

该方法返回一个新的字符数组,其中包含了字符串中的所有字符。每个字符都被存储在数组的一个元素中,顺序与字符串中的顺序相同。

这个方法可以用于许多情况,例如:

遍历字符串中的每个字符:通过将字符串转换为字符数组,您可以使用循环来遍历并处理每个字符。

修改字符串中的字符:字符串是不可变的,即不能直接修改字符串中的某个字符。但是,如果您将字符串转换为字符数组,您可以修改字符数组中的元素,然后再将其转换回字符串。

以下是一个使用 toCharArray() 方法的示例:

String str = "Hello";char[] charArray = str.toCharArray();// 遍历字符数组for (char c : charArray) {    System.out.println(c);}// 修改字符数组中的元素charArray[0] = 'h';// 将字符数组转换回字符串String modifiedStr = new String(charArray);System.out.println(modifiedStr);

输出结果:

Hellohello

总之,toCharArray() 方法是将字符串转换为字符数组的一种方便的方式,它可以在需要处理单个字符的情况下提供更灵活的操作。

05-金额转化(简单)

package com.xiaonan.exercise06;import java.util.Scanner;public class Demo05 {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        System.out.println("请输入您的金额");        //定义一个变量 存储金额        int money;        // 1. 判断金额的合法性 最大为7位数字        while (true) {            //重复使用户输入            money = sc.nextInt();            if (money >= 0 && money <= 9999999) {                break;            } else {                System.out.println("金额无效,请重新输入");            }        }        //定义 存储大写字符串        String capitalStr = "";        //2. 转化数字        while (true) {            //拿个位            int unit = money % 10;            String unitStr = capital(unit);            //丢个位  这里是从 money 录入的?里丢            money /= 10;            // 注意点1: 注意拼接的前后的顺序            capitalStr = unitStr + capitalStr;            //结束循环  这里是当 money==0 时 才退出循环            if (money == 0) {                break;            }        }        //3. 前面补0        //补0的个数        int count = 7 - capitalStr.length();        for (int i = 1; i <= count; i++) {            // 是前面 所以要拼接的顺序改变一下            capitalStr = "零" + capitalStr;        }        //4. 插入单位        //定义一个数组表示单位        String[] str = {"佰","拾","万","仟","佰","拾","元"};        //定义一个字符串 存储结果        String result = "";        for (int i = 0; i < str.length; i++) {            //得到原来的字符串的每一位 并赋值            result = result + capitalStr.charAt(i) + str[i];        }        //输出结果        System.out.println(result);    }    //转化为数字的大写    public static String capital(int number) {        //定义一个大写数字的字符串数组        String[] str = {"零","壹", "贰", "叁", "肆", "伍", "陆", "柒", "玐", "玖"};        //直接返还        return str[number];    }}

代码解释:

这段代码是一个Java程序,用于将用户输入的金额转换为大写金额表示。

代码解释如下:

导入必要的类:

import java.util.Scanner;

这行代码导入了java.util.Scanner类,用于从用户输入中读取数据。

创建Scanner对象:

Scanner sc = new Scanner(System.in);

这行代码创建了一个Scanner对象,用于读取用户输入。

提示用户输入金额:

System.out.println("请输入您的金额");

这行代码打印出提示信息,要求用户输入金额。

判断金额的合法性:

while (true) {money = sc.nextInt();if (money >= 0 && money <= 9999999) {    break;} else {    System.out.println("金额无效,请重新输入");}}

这段代码使用一个无限循环,直到用户输入的金额合法(大于等于0且小于等于9999999)才跳出循环。如果金额无效,会打印错误提示信息。

定义存储大写金额的字符串:

String capitalStr = "";

转化数字:

while (true) {int unit = money % 10;String unitStr = capital(unit);money /= 10;capitalStr = unitStr + capitalStr;if (money == 0) {    break;}}

这段代码使用一个无限循环,将金额的每一位数字转换为对应的大写形式,并将其拼接到capitalStr字符串的前面。循环结束的条件是金额为0,即所有位数都处理完毕。

前面补0:

int count = 7 - capitalStr.length();for (int i = 1; i <= count; i++) {capitalStr = "零" + capitalStr;}

这段代码计算需要在大写金额前面补0的个数,并使用循环在capitalStr字符串的前面添加相应数量的"零"字符。

插入单位:

String[] str = {"佰","拾","万","仟","佰","拾","元"};String result = "";for (int i = 0; i < str.length; i++) {result = result + capitalStr.charAt(i) + str[i];}

这段代码定义了一个字符串数组str,其中存储了单位(佰、拾、万、仟、佰、拾、元)。然后使用循环,将大写金额的每一位字符和对应的单位字符拼接到result字符串中。

输出结果:

System.out.println(result);

最后,将结果打印出来,即用户输入金额的大写表示。

此代码实现了将用户输入的金额转换为大写金额的功能。

06-手机号屏蔽

package com.xiaonan.exercise06;public class Demo06 {    public static void main(String[] args) {        //1. 定义一个手机号码        String phoneNumber = "13112349468";        //2. 截取前面的三位        //substring(0,3) 代表前面的三位 包左不包右        String start = phoneNumber.substring(0,3);        //3. 截取后面的四位数字 包左不包右  从7(包括)到末尾 按字符串的下标        String end = phoneNumber.substring(7);        //4. 拼接        String str = start + "****" + end;        //5. 输出        System.out.println(str);    }}

07-身份证号码查看

package com.xiaonan.exercise06;import java.util.Scanner;public class Demo07 {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        System.out.println("请输入您的身份证号");        //在while外定义 身份证号        String idCard;        while(true){           idCard = sc.next();            if(idCard.length()!=18){                System.out.println("您输入的身份证号码有误,请重新输入");            }else {                System.out.println("输入成功");                break;            }        }        //1. 获取出生年月日        String year = idCard.substring(6,10);        String month = idCard.substring(10,12);        String day = idCard.substring(12,14);        //2. 获取性别        String gender = idCard.substring(16,17);        char c = gender.charAt(0);        //这里的test的值为 ASCII码值 不是真正的"数字"        //我要拿的是里面的之前存储的数字1,2 来计算 而不是拿数字对应的码值来计        int test = (int)c;  //所以这是错的        System.out.println("--------"+test);        //**注意点1, 这里要转化**        if((c-'0')%2==0){ // 判断奇偶数 判断的是 余数是否为0(偶数) 不为0(奇数)            gender = "女";        }else{            gender = "男";        }        //3. 输出        System.out.println("人物信息为");        System.out.println(year+"年"+month+"月"+day+"日");        System.out.println("性别为: "+gender);    }}

易错点:

**//2. 获取性别 String gender = idCard.substring(16,17); char c = gender.charAt(0); //这里的test的值为 ASCII码值 不是真正的"数字" //我要拿的是里面的之前存储的数字1,2 来计算 而不是拿数字对应的码值来计 int test = (int)c; //所以这是错的 System.out.println("--------"+test); //注意点1, 这里要转化 if((c-'0')%2==0){ gender = "女"; }else{ gender = "男"; }

08-敏感词替换

package com.xiaonan.exercise06;public class Demo08 {    public static void main(String[] args) {        String talk = "TMD,我CNM,Sb玩意莫华南MLGB,TMD,TMD";        //1. 定义一个敏感词 数组(库)        String[] arr = {"TMD","CNM","Sb","MLGB"};        //2. 替换敏感词        for (int i = 0; i < arr.length; i++) {            talk = talk.replace(arr[i],"***");            //方法原理 看输出的语句就知道了            System.out.println(talk);        }        //3.输出        System.out.println(talk);    }}

点击全文阅读


本文链接:http://zhangshiyu.com/post/87969.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1