java学习笔记13(字符串)

    科技2022-08-26  103

    类 java.lang.String

    /* java.lang.String类代表字符串 程序当中所有的双引号字符串,都是String类的对象(就算没有new,也照样是) 字符串的特点: 1 字符串的内容永不可变【重点】 2 正是因为字符串不可改变,所以字符串是可以共享使用的 3 字符串效果上相当于char[]字符数组,但是底层原理是byte[]字节数组。 创建字符串的常见3+1种方式: 三种构造方法: 1 public String():创建一个空白字符串,不含有任何内容 2 public String(char[] array):根据字符数组内容,来创建对应的字符串 3 public String(byte[] array):根据字节数组的内容,来创建对应的字符串 一种直接创建: String str="Hello";//右边直接用双引号 注意:直接写上双引号,就是字符串对象 */ public class demo { public static void main(String[] args) { String str1=new String(); System.out.println("第一个字符串"+str1); char[] charArray={'a','b','c'}; String str2=new String(char[] charArray); System.out.println("第二个字符串"+str2); byte[] byteArray={97,98,99}; String str3=new String(byte[] byteArray); System.out.println("第三个字符串"+str3); String str="Hello"; } }

    字符串的常量池

    /* 字符串常量池:程序当中直接写上的双引号字符串,就在字符串常量池中。 对于基本类型来说:是进行数值的比较 对于引用类型来说:是进行[地址值]的比较 */ public class Demo { public static void main(String[] args) { String str1="abc"; String str2="abc"; char[] charArray={'a','b','c'}; String str3=new String(charArray); System.out.println(str1==str2);//true System.out.println(str1==str3); } }

    字符串的比较

    /* ==是经行地址值的比较 内容比较: 1 public boolean equals(Object obj);参数可以是任何对象,只有参数是一个字符串并且内容相同的才会给true;否则返回false 备注:1任何对象都能用Object进行接收 2 equals方法具有对称性, 3 如果比较双方一个常量一个变量,把常量字符串写在前面 "abc".equals("abc") 2 public boolean equalsIgnoreCase(String str);忽略大小写,进行内容比较 */ public class DemoStringEquals { public static void main(String[] args) { String str1="Hello"; String str2="Hello"; char[] charArray={'H','e','l','l','o'}; String str3=new String(charArray); System.out.println(str1.equals(str2)); System.out.println()str1.equals(str3)); } }

    字符串的获取方法

    /* public int length();获取字符串当中含有的字符个数 public String concat(String str):将当前字符串和参数字符串拼接成为返回值新的字符串 public char charAt(int index);获取指定索引位置的单个字符(索引从0开始) public int indexOf(String str);查找参数字符串在本字符串当中首次出现的索引位置,如果没有返回-1; */ public class Demo { public static void main(String[] args) { int length="jbcjboeniinci".length(); String str1="Hello"; String str2="World"; String str3=str1.concat(str2); char ch="Hello".charAt(1); String original="HelloWorld"; int index=orginal.indexOf("llo"); } }

    字符串的截取方法

    /* 字符串的截取方法: public String substring(int index);街区从参数位置一直到字符串末尾,返回新字符串 public String sbstring(int begin,int end);截取从begin开始,到end结束,[begin,end) */ public class Demo { public static void main(String[] args) { String str1="HellloWorld"; String str2=str1.substring(5);//World String str3=str1.substring(4,7);//oWo } }

    字符串的转换

    /* String当中与装换有关的常用方法有: public char[] toCharArray();将当前字符串拆分成字符数组作为返回值 public byte[] getBytes(),获得档期啊字符串底层的字节数组 public String replace(CharSequence oldString,CharSequence newString); 将所有出现过的老字符串替换成新的字符串,返回替换之后的结果新字符串 */ public class Demo { public static void main(String[] args) { char[] chars="Hello".toCharArray(); System.out.println(chars[0]); System.out.println(chars.length); byte[] bytes="abc".getBytes(); for(int i=0;i<bytes.length;i++) { System.out.println(bytes[i]); } String str1="How do you do"; String str2=str1.replace("o","*"); System.out.println(str2); String lang1="会不会玩,你妹的"; String lang2=lang1.replace("你妹的""***"); System.out.println(lang2); } }

    字符串的分割

    /* 分割字符串的方法: public String[] split(String regex);按照参数规则将字符串分割为若干部分 其参数其实是一个“正则表达式” 如果一定要用“.”,必须写成“\\.” */ public class Demo { public static void main(String[] args) { String str1="aaa,bbb,ccc"; String[] array1=str1.split(","); for(int i=1;i<array1.length;i++) { System.out.println(array1[i]); } } }

    练习1 拼接字符串

    /* 题目:定义一个方法,把数组{1,2,3}按照指定格式拼接成一个字符串,格式【word1#word2#word3】 */ public class Demo { public static void main(String[] args) { int[] array={1,2,3}; String result=fromArrayToString(array); System.out.println(result); } public static String fromArrayToString(int[] array) { String str="["; for(int i=0;i<array.length;i++) { if(i==array.length-1) { str+="word"+array[i]+"]"; } else { str+="word"+array[i]+"#"; } }* return str; } }

    练习2

    /* 题目:键盘输入一个字符串,并且统计其中各种字符出现的次数 种类有:大写字母,小写字母,数字,其他 */ public class Demo { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入一个字符串"); String input=sc.next();//获取一个输入的字符串 int countUpper=0; int countLower=0; int countNum=0; int countOther=0; char[] charArray=input.toCharArray(); for(int i=0;i<charArray.length;i++) { char ch=charArray[i]; if('a'<=ch&&'z'>=ch) { countLower++; }else if('A'<=ch&&'Z'>=ch) { countUpper++; }else if('0'<=ch&&'9'>=ch) { countNum++; }else{ countOther++; } } } }
    Processed: 0.013, SQL: 9