字符串的切割:String[] str.split()切割字符串 返回字符串数组。
1 package test02;
2
3 public class String_Test {
4 public static void main(String ...args){
5 In_Str s=new In_Str();
6 s.Pri();
7 }
8 }
9
10 class In_Str{
11 String str=new String("cHi ckck \n");
12 public void Pri(){
13 String[] new_str=str.split("i");
14 for(String i:new_str){
15 System.out.print(i+'\n');
16 }
17 }
18 }
练习:
题目一:获取指定字符串中,大写字母、小写字母、数字的个数。
1 package test02;
2
3
4 import java.util.ArrayList;
5
6 public class String_Test {
7 public static void main(String ...args){
8 In_Str s=new In_Str();
9 s.Pri();
10 }
11 }
12
13 class In_Str{
14 String str=new String("cHi1T2ckc2k");
15 char[] ch_n=str.toCharArray();
16 private int upcount=0;
17 private int lowcount=0;
18 private int numcount=0;
19 public void Pri(){
20 for (char i:ch_n){
21 if('A'<i && i<'Z'){
22 this.upcount+=1;
23 }
24 if('a'<i&& i<'z'){
25 this.lowcount+=1;
26 }
27 if('1'<i && i<'9'){
28 this.numcount+=1;
29 }
30
31
32 }
33
34 System.out.print(lowcount+"\n");
35 System.out.print(upcount+"\n");
36 System.out.print(numcount+"\n");
37
38 }
39 }
注意:+加号在字符串中是连接的作用,在字符中意思求和!!!!
可以直接用字符来直接比较大小!!!
&&和&区别:&&是 前一个表达式为false,则不执行右边的表达式。而&为无论左边表达式是否为false都执行右边。相同点是:只有所有表达式为正确才true。同理||和|
题目二:将字符串中,第一个字母转换成大写,其他字母转换成小写,并打印改变后的字符串。
1 package test02;
2
3
4 import java.util.ArrayList;
5
6 public class String_Test {
7 public static void main(String ...args){
8 In_Str s=new In_Str();
9 s.Pri();
10 }
11 }
12
13 class In_Str{
14 String str=new String("cHi1T2ckc2k");
15 char[] ch_n=str.toCharArray();
16 public void Pri(){
17 String start =str.substring(0,1);
18 String end=str.substring(1);
19 String new_start=start.toUpperCase();
20 String new_end=end.toLowerCase();
21 String new_str=new_start+new_end;
22 System.out.print(new_str);
23
24 }
题目三:查询大字符串中,出现指定小字符串的次数。如“hellojava,nihaojava,javazhenbang”中查询出现“java”的次数。
1 package test02;
2
3
4 import java.util.ArrayList;
5
6 public class String_Test {
7 public static void main(String ...args){
8 In_Str s=new In_Str();
9 s.Pri();
10 }
11 }
12
13 class In_Str{
14 String str=new String("hellojava,nihaojava,javazhenbang");
15 int re_count=0;
16 public void Pri(){
17 int st_index=0;
18 while (st_index!= -1) {
19 if (str.indexOf("java") != -1) {
20 re_count += 1;
21 st_index = str.indexOf("java");
22 str = str.substring(st_index + 1);
23 }else {
24 st_index=-1;
25 }
26 }
27 System.out.print(re_count);
28
29 }
30 }
三:StringBuffer 字符串可变缓冲区。有append、insert、replace、reverse等方法,注意操作之后也是StringBuffer 需要用toString来获取对应字符串。
StringBuilder类,比StringBuilder 处理速度更快,建议使用这个类。
1 package test03;
2
3 public class Str_Bu {
4 public static void main(String...args){
5 S_B s_b=new S_B("winner");
6 s_b.ch_str();
7 }
8 }
9
10
11 class S_B{
12 private String str;
13 public S_B(String str){
14 this.str=str;
15 }
16 public void ch_str(){
17 StringBuffer st_bu=new StringBuffer(str);
18 st_bu.append("ok");//尾部追加。
19 st_bu.insert(2,"ko");//指定位置添加字符串。
20 System.out.printf(st_bu.toString()+'\n');
21 st_bu.delete(1,111);
22 System.out.printf(st_bu.toString());
23 st_bu.replace(1,3333,"ooop");
24 System.out.printf(st_bu.toString()+"\n");
25 st_bu.reverse();
26 System.out.printf(st_bu.toString());
27 }
28 }
输出:

练习:
l 从指定位置开始,到末尾结束,截取该字符串缓冲区,返回新字符串
1 package test03;
2
3 public class Str_Bu {
4 public static void main(String...args){
5 S_B s_b=new S_B("winner");
6 s_b.ch_str();
7 }
8 }
9
10
11 class S_B{
12 private String str;
13 public S_B(String str){
14 this.str=str;
15 }
16 public void ch_str(){
17 StringBuffer st_bu=new StringBuffer(str);
18 String st_new=st_bu.substring(3);
19 System.out.printf(st_new);
20 }
21 }
在原有字符串缓冲区内容基础上,删除指定位置上的字符
1 package test03;
2
3 public class Str_Bu {
4 public static void main(String...args){
5 S_B s_b=new S_B("winner");
6 s_b.ch_str();
7 }
8 }
9
10
11 class S_B{
12 private String str;
13 public S_B(String str){
14 this.str=str;
15 }
16 public void ch_str(){
17 StringBuffer st_bu=new StringBuffer(str);
18 st_bu.deleteCharAt(2);
19 System.out.printf(st_bu.toString());
20 }
21 }
方法的链式调用:即一个方法的返回是一个对象,我们可 以基于这个对象继续调用对象,这种形式叫做方法的调用,比如:st_bu是StringBuffer对象。
1 st_bu.deleteCharAt(2).append("ok").append("oooo");
练习:int[] arr = {34,12,89,68};将一个int[]中元素转成字符串 格式 [34,12,89,68]
1 package test03;
2
3 import org.omg.Messaging.SYNC_WITH_TRANSPORT;
4
5 import java.lang.reflect.Array;
6
7 public class Str_Bu {
8 public static void main(String...args){
9 int[] in_ar={34,12,89,68};
10 S_B s_b=new S_B(in_ar);
11 s_b.ch_str();
12 }
13 }
14
15
16 class S_B{
17 private int[] in;
18 public S_B(int[] in){
19 this.in=in;
20 }
21 public void ch_str(){
22 StringBuffer in_bu=new StringBuffer();
23 for(int i=0;i<this.in.length;i++){
24 if(i==0){
25 in_bu.append("[");
26 in_bu.append(Array.get(this.in,i));
27 }else if (i==this.in.length-1){
28 in_bu.append(Array.get(this.in,i));
29 in_bu.append("]");
30 }else{
31 in_bu.append(Array.get(this.in,i));
32 }
33
34 };
35 System.out.printf(in_bu.toString());
36 }
37 }
学习是一种态度,坚持是质变的利器!
网友评论