转换为字符数组后,筛选出控制台读取到的字符串中的大写字母和数字,并打印出来 。
public class TestNumber {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str = sc.next();char []cs = str.toCharArray();System.out.println(String.valueOf(cs));System.out.println(Arrays.toString(cs));String str2 = "";for(int i = 0;i < str.length();i++){if(Character.isDigit(cs[i]) || Character.isUpperCase(cs[i]))str2 += cs[i];}System.out.println(str2);}}
9.6 字符串*
创建字符串字符串即字符的组合,在Java中,字符串是一个类,所以我们见到的字符串都是对象 常见创建字符串手段:
每当有一个字面值出现的时候 , 虚拟机就会创建一个字符串 。调用String的构造方法创建一个字符串对象 。通过+加号进行字符串拼接也会创建新的字符串对象 。public class TestString {public static void main(String[] args) {String garen ="盖伦"; //字面值,虚拟机碰到字面值就会创建一个字符串对象String teemo = new String("提莫"); //创建了两个字符串对象char[] cs = new char[]{'崔','斯','特'};String hero = new String(cs);//通过字符数组创建一个字符串对象String hero3 = garen + teemo;//通过+加号进行字符串拼接}}
String 被修饰为final,所以是不能被继承的/*这里会报错,因为String不能被继承*/static class MyString extends String{ }
immutable - 不可改变的比如创建了一个字符串对象 String garen ="盖伦";
不可改变的具体含义是指:
不能增加长度不能减少长度不能插入字符不能删除字符不能修改字符一旦创建好这个字符串 , 里面的内容 永远 不能改变,String 的表现就像是一个常量 。
字符串格式化//%s表示字符串,%d表示数字,%n表示换行String sentenceFormat ="%s 在进行了连续 %d 次击杀后,获得了 %s 的称号%n";String sentence2 = String.format(sentenceFormat, name,kill,title);练习1-随机字符串创建一个长度是5的随机字符串,随机字符有可能是数字 , 大写字母或者小写字母 。
public class TestNumber {public char get_char(){/*0-9 corresponds to Ascii 48-57*A-Z 65-90*a-z 97-122* */Random random = new Random();//随机生成122-48范围类的ascii码int num;switch (random.nextInt(3)){//获取数字asciicase 0:num = random.nextInt(58-48) + 48;break;//获取大写字母case 1:num = random.nextInt(91-65) + 65;break;case 2:num = random.nextInt(123 - 97) + 97;break;default:num = 48;}char c = (char)num;return c;}public String get_String(int length){String str = "";for(int i = 0;i < length;i++){str += get_char();}return str;}public static void main(String[] args) {TestNumber t = new TestNumber();String str = t.get_String(5);System.out.println(str);}}
练习2 - 字符串数组排序public String[] stringDataGroup_sort(String[] strings) {/*字符串数组排序按首字母排序**/for (int i = 0; i < strings.length - 1; i++) {for (int j = i + 1; j < strings.length; j++) {char str1 = strings[i].charAt(0);char str2 = strings[j].charAt(0);int num1 = str1;int num2 = str2;if (num1 > num2) {String string = strings[i];strings[i] = strings[j];strings[j] = string;}}}return strings;}public static void main(String[] args) {TestNumber t = new TestNumber();String []strs = new String[8];for (int i = 0;i < 8;i++){strs[i] = t.get_String(5);}System.out.println(Arrays.toString(strs));String[] sorted_str = t.stringDataGroup_sort(strs);System.out.println(Arrays.toString(sorted_str));}
练习3 - 穷举法破解密码生成一个长度是3的随机字符串,把这个字符串作为当做密码使用穷举法生成长度是3个字符串,匹配上述生成的密码要求: 使用 递归解决 上述问题
推荐阅读
- aoc红酒 什么意思
- 蚁酸是什么酸 乙酸
- 淀粉水解产物 淀粉水解产物是什么
- 黑眼圈是什么梗 黑眼圈的梗
- 四个木字叠起来读什么 四个木是什么字
- 月亮有阴晴圆缺是什么现象引起的 月亮有阴晴圆缺是怎么引起的
- 瓦斯是什么 瓦斯是什么东西
- 结婚9周年是什么婚 结婚9周年又叫什么
- 上巳节是哪天 上巳节是什么时候
- 生育津贴怎么算 生育保险什么意思