筛选字符串中的特定元素
需求:
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);
}
}