java 字符串 基础介绍 不念不忘少年蓝@ 2021-08-31 19:11 238阅读 0赞 ### 1-1.字符串的概述与特点 ### 字符串的概述:在Java中Java.lang.String类代表字符串。字符串是常量,创建后用不可变。 字符串的特点: 1).字符串的内容在创建后永不可变。(重点) 2).因为字符串在创建后是不可变的,所以字符串是可以共享的。 3).字符串的处理结果相当于char\[ \]字符数组,但底层原理是byte\[ \]字节数组。 ### 1-2.字符串的构造方法和直接创建 ### 创建字符串的常见3+1种方式: 三种构造方法: 1).public String( ); 创建一个空的字符串,不含有任何内容。 2).public String (char\[ \] array); 根据字符数组的内容,来创建对应的字符串。 3).public String(byte\[ \] array); 根据字节数组的内容,来创建对应的字符串。 一种直接创建方法: String str = "hello,world!"; 注意:只要写了双引号,就是字符串的对象,不管有没有使用new关键字。 ### 1-3.字符串比较的相关方法 ### String中“==”是对对象地址值的比较,若需要对字符串的内容进行比较,可以使用以下两个方法: 1).public boolean equals(Object obj); 参数可以是任何对象,只有在参数是一个字符串且内容相同时,才会输出true,否则输出false。 注意事项: 对该方法,任何对象都能使用Object进行接收; 对该方法,equals具有对称性,也就是a.equals(b)和b.equals(a)是一样的。 如果比较的双方,一个是常量,一个是变量,推荐吧常量字符串写在前面。即 推荐"abc".equals(str);不推荐:str.equals("abc");第二种写法在str变量为空时,会编译报错,第一种则会输出false。 2).public boolean equals Ignorecase(String str); 该方法可忽略字符的大小写进行比较(限英文字母大小写)。 ### 2-1.字符串的获取相关方法 ### String当中与获取相关的方法有: 1).public int length(); 用于字符串当中含有的字符个数,拿到字符串长度。 2).public String contact(String str); 将当前字符串和参数字符串拼接成为新的字符串做返回值。 3).public char charAt(int index); 获取指定索引值位置的单个字符(索引从0开始)。 4).public int indexof (String str); 查找参数字符串在本字符串中首次出现的索引位置。如果没有则返回一个值(-1)。 ### 2-2.字符串的截取方法 ### 1).public String substring(int index); 使用该方法可对字符串进行截取,截取从参数位置一直到字符串末尾,并返回新的字符串。 2).public String substring(int begin,int end); 使用该方法也能对字符串进行截取,可截取从begin开始的,到end结束中间的字符串。 注意:\[begin,end)是左闭右开区间,包含左边,不包含右边。 ### 2-3.字符串中的相关转换方法 ### 1).public char\[ \] tocharArray( ); 将当前字符串拆分成字符数组(char\[ \]),作为返回值。 2).public byte\[ \] getBytes( ); 获取当前字符串底层的字节数组(byte\[ \]); 3).public String replay(charSquence oldString,charSquence newString):将所有出现的字符串替换成为新的字符串返回,替换之后的结果为新的字符串。 注意:charSquence可以接受字符串类型,是一个接口。 ### 2-4.字符串的分割方法 ### 方法:public String\[ \] split (String regex); 按照参数规则,将字符串写分成若干部分。 split的参数其实就是一个正则表达式。 注意:若需要使用该方法按照英文句点”.“进行切分,必须写为”\\\\.“,否则不能成功切分。 \*易错点\*: 对下列这一段代码, String str = "字符串"; System.out.println(str); str = "zifuchuan"; System.out.println(str); str中存储的依次是字符串"字符串"和"zifuchuan"的地址值,即该处是创建了两个字符串的,不是将字符串str的内容修改,字符串的内容是不能修改的。 本来str中存储的是"字符串"的地址值,后来str中的地址值被修改为"zifuchuan"的地址值。 字符串代码练习---统计输入字符中各种字符分别出现的次数: 代码如下: //调用Scanner类 String str = new Scanner(System.in).next(); char[] C = str.toCharArray(); //分别设置变量用于统计个字符类型出现的次数 int count1 = 0, count2 = 0, count3 = 0, count4 = 0; //通过for循环对输入的字符进行统计 for (int i = 0; i < C.length; i++) { if ('A' <= C[i] && C[i] <= 'Z') {//对大写英文字母进行统计 count1++; } else if ('a' <= C[i] && 'z' >= C[i]) {//对小写英文字母进行统计 count2++; } else if ('1' <= C[i] && '9' >= C[i]) {//对阿拉伯数字进行统计 count3++; } else {//对其他字符进行统计 count4++; } } //分别输出各字符的统计结果 System.out.println("大写英文字母有:" + count1 + "个"); System.out.println("小写英文字母有:" + count2 + "个"); System.out.println("阿拉伯数字有:" + count3 + "个"); System.out.println("其他字符有:" + count4 + "个"); } 运行结果如下: ![format_png][] [format_png]: /images/20210728/e89e0d8ad1b94a6a90e967f280b7bee2.png
还没有评论,来说两句吧...