Java中的String字符串练习

这篇具有很好参考价值的文章主要介绍了Java中的String字符串练习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

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()

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

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

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

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

以下是一个使用 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);

输出结果:

H
e
l
l
o
hello

总之,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程序,用于将用户输入的金额转换为大写金额表示。

代码解释如下:

  1. 导入必要的类:

    import java.util.Scanner;

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

  2. 创建Scanner对象:

    Scanner sc = new Scanner(System.in);

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

  3. 提示用户输入金额:

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

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

  4. 判断金额的合法性:

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

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

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

    String capitalStr = "";
  6. 转化数字:

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

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

  7. 前面补0:

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

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

  8. 插入单位:

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

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

  9. 输出结果:

    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 = "男"; }文章来源地址https://www.toymoban.com/news/detail-844069.html

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);
    }
}

到了这里,关于Java中的String字符串练习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java的String(字符串详解)

    主要有三种,一种是直接使用常量去构造,要么使用new String来构造,或者还可以使用字符数组的形式。 String 类型本身并不存储数据,而是存储指向该字符串的引用,所以字符串类型是一个类,s1是一个引用,指向这个类。而这个类有两个成员变量,一个名称为value,这也是一

    2024年02月07日
    浏览(64)
  • Java Base64字符串与String字符串互转方法

    在使用String转Base64和Base64转String上有点小问题,特此记录。 结果: 也是跟上面差不多的思路,将Base64转为byte数组,再转为String

    2024年02月15日
    浏览(60)
  • Java截取String字符串的方法

    1.指定字符截取字符串,返回字符串数组 2.指定索引,截取字符串 3.通过StringUtils类截取字符串

    2024年04月22日
    浏览(42)
  • String字符串分割的3种方法 Java

    使用了 split(string) 方法通过指定分隔符将字符串分割为数组 在java.lang包中有String.split()方法,返回是一个数组。“.”和“|”都是转义字符,必须得加\\\"“; 如果用“.”作为分隔的话,必须是如下写法:String.split(”.“),这样才能正确的分隔开,不能用String.split(”.“); 如果用“

    2024年01月24日
    浏览(44)
  • 【Java】Java 中格式化字符串:String.format() 方法

    本文仅供学习参考! 相关文章地址: https://www.cnblogs.com/Dhouse/p/7776780.html https://www.javatpoint.com/java-string-format https://www.geeksforgeeks.org/java-string-format-method-with-examples/ 前言 虽然 System.out.println() 适合调试和显示简单消息,但它不太适合格式化字符串。格式化字符串不仅显示字符串

    2024年02月11日
    浏览(64)
  • Java 字符串数组定义_「string数组」string 数组怎么定义

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 点击跳转浏览。 String arr[] = new String[10]; //创建一个长度为10的String 类型数组。 String arr[] = {“张三”,“李四”}; 这个是最常用的 String[] arr = new String[10];

    2024年02月15日
    浏览(51)
  • java 字符串转数组(String to Array)

    java 字符串转数组(String to Array) 数组转List、 判断String数组中是否包含某个字符串

    2024年02月12日
    浏览(49)
  • Java中String字符串替换3种方法详解

    replace() 方法用于将目标字符串中的指定字符(串)替换成新的字符(串) 字符串.replace(String oldChar, String newChar) replaceFirst() 方法用于将目标字符串中匹配某正则表达式的第一个子字符串替换成新的字符串 字符串.replaceFirst(String regex, String replacement) replaceAll() 方法用于将目标字

    2024年02月11日
    浏览(83)
  • java8 list对象string字符串求和

    Java 8 中可以使用 Stream API 和 reduce() 方法来对 List 中的字符串进行求和。 举个例子,假设你有一个 List 叫做 \\\"numbers\\\",你可以这样求和: 或者这样求和 这样得到的结果就是 \\\"12345\\\"。 在这个例子中,我们使用 reduce() 方法对 List 中的所有字符串进行求和,其中第一个参数是初始值

    2024年02月15日
    浏览(58)
  • Java字符串知多少:String、StringBuffer、StringBuilder

    String 是 Java 中使用得最频繁的一个类了,不管是作为开发者的业务使用,还是一些系统级别的字符使用, String 都发挥着重要的作用。 String 是 不可变 的、 final 的,不能被继承,且 Java 在运行时也保存了一个字符串池(String pool) ,就使得 String 变得很特殊。 实现三个接口:

    2024年02月06日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包