筛选字符串中的特定元素之不同方法

筛选字符串中的特定元素

需求:
1、提示用户键盘录入一个包含数字和字母的字符串(不做是否包含数字和字母的判断),
2、遍历字符串分别筛选出数字和字母把它们分别拼接成字符串(如有符号不包含在字母里),
3、按照数字在前字母在后的规则组成一个新的字符串,把组成的新字符串打印在控制台。

三种方法:
第一种:直接定义一个char类型的变量,使用charAt方法拿字符元素直接与数字比较(比较的时候字符型自动转换为int类型),符合条件直接打印字符元素:

import java.util.Scanner;

public class Number_test01 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请一个包含数字和字母的字符串:");
        String s = sc.next();
        for (int i = 0; i < s.length(); i++) {
            char ch = s.charAt(i);
            if (ch >= 48 && ch <= 57) {
                System.out.print(ch);
            }
        }
        for (int i = 0; i < s.length(); i++) {
            char cc = s.charAt(i);
            if (cc >= 97 && (int) cc <= 122) {
                System.out.print(cc);
            }
        }
    }
}

第二种:
直接定义一个字符数组,使用charAt方法判断字符数组中的元素(比较的时候字符型自动转换为int类型)是否符合条件,然后直接打印出这个元素:

import java.util.Scanner;

public class Number_Test_1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串(必须包含数字和字母):");
        String s = sc.nextLine();
        char[] ch = new char[s.length()];
        for (int i = 0; i < s.length(); i++) {
            ch[i] = s.charAt(i);
            if (ch[i] >= 48 && ch[i] <= 57) {
                // char c1 =  ch[i];
                System.out.print(ch[i]);
            }
        }
        for (int i = 0; i < s.length(); i++) {
            ch[i] = s.charAt(i);
            if (ch[i] >= 97 && (int) ch[i] <= 122) {
                // char c2 =  ch[i];
                System.out.print(ch[i]);
            }
        }
    }
}

第三种:
先定义一个字符数组,用StringBuilder 来生成一个新的字符串,使用charAt方法拿字符元素直接与数字比较(比较的时候字符型自动转换为int类型),符合条件的元素添加到StringBuilder中,最后再转换为String类型并打印:

import java.util.Scanner;

public class Number_Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串(必须包含数字和字母):");
        String s = sc.nextLine();
        char[] ch = new char[s.length()];
        StringBuilder sb = new StringBuilder();
        String ss = "";
        //  String s2="";
        for (int i = 0; i < s.length(); i++) {
            int a = (int) s.charAt(i);
            if (a >= 48 && a <= 57) {
                char c = (char) a;
                sb.append(c);
                ss = sb.toString();
                // System.out.println(s1);
            }
        }
        for (int j = 0; j < s.length(); j++) {
            int a1 = (int) s.charAt(j);
            if (a1 >= 97 && a1 <= 122) {
                char cc = (char) a1;
                sb.append(cc);
                ss = sb.toString();
                // System.out.println(s2);
            }
        }
        System.out.println(ss);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值