String类的方法

目录

String类的获取功能

遍历获取字符串的每一个字符

统计大小写以及数字在字符串中出现的次数 

大串中找小串

String类的转换功能

将一个字符串的首字母转换成大写,其余都为小写(只考虑大小写英文字符)

字符串练习 

把数组中的数据按照指定格式拼接成一个字符串 

 字符串反转

 在一个字符串中统计指定字符串在其中出现的次数


 

String类的获取功能

package String.pack04;
/*
    String类的获取功能
    int length();获取字符串的长度
    char charAt(int index):获取指定索引位置的字符
    int indexOf(int char):返回指定字符在该字符串中第一次出现的索引
        为什么这里是int类型,而不是Char类型
        原因是 'a'和97都可以表示'a'
    int indexOf(String str):返回指定字符串在该字符传中第一次出现的索引
    int indexOf(int ch,int fromIndex):返回指定字符在指定位置后第一次出现的索引
    int indexOf(String str,int fromIndex):返回指定字符串在指定位置后第一次出现的索引
    String substring(int start):从指定位置截取字符串,默认到末尾
    String substring(int start,int end):从指定位置开始到指定位置结束截取字符串
 */
public class StringDemo {
    public static void main(String[] args) {
        String s = "helloworld";
        System.out.println(s.charAt(5));
        System.out.println(s.indexOf("l"));
        System.out.println(s.indexOf("hel"));
        System.out.println(s.indexOf("llo"));
        System.out.println(s.indexOf("o",5));
        System.out.println(s.indexOf("ll",5));
        System.out.println(s.substring(5));
        System.out.println(s.substring(2,6));//包左不包右,即包括start索引但不包括end索引。
        System.out.println(s.substring(0,s.length()));//0到9
    }
}

 

遍历获取字符串的每一个字符

/*
需求:遍历获取字符串的每一个字符
 方法一:
    可以使用String中的charAt()方法,就可以获取指定位置的任意字符。
    如charAt(0)获取第一个字符,charAt(1)获取第二个字符。。。然后用for循环遍历
方法二:
    也可以用String中的substring()方法,截取对应位置的字符串,每次截取一个字符
    如substring(0,1)截取第一个,substring(1,2)截取第二个字符。。。同样使用for循环遍历

 */
public class StringTest {
    public static void main(String[] args)
    {
        String str = "helloworld";
        for (int i = 0; i < str.length(); i++) {
            System.out.println(str.substring(i,i+1));
        }
        System.out.println("--------------");
        for (int i = 0; i <str.length(); i++) {
            System.out.println(str.charAt(i));
        }
    }
}

统计大小写以及数字在字符串中出现的次数 

package String.pack04;
/*
    需求:统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数(不考虑其他)
    举例:"Hello123World"
        大写:2个
        小写:8个
        数字:3个

    分析:
        ASCII码表:
            0  48
            A  65
            a  97

        if(ch>='0'&&ch<=9) 数字
        if(ch>'a'&&ch<='z') 小写字母
        if(ch>='A'&&ch<='Z') 大写字母
 */
public class StringTest02 {
    public static void main(String[] args) {
        String s = "Hello123World";
        int bigCount =  0;
        int smallCount = 0;
        int  numberCount = 0;

        for (int i = 0; i < s.length(); i++) {
            char ch = s.charAt(i);
            if(ch>='0' && ch<='9')
                numberCount++;
            else if(ch>='a' && ch<='z')
                smallCount++;
            else
                bigCount++;
        }
        System.out.println("大写字母:"+bigCount+" 小写字母:"+smallCount+"" +
                " 数字:"+numberCount);
    }
}

大串中找小串

package String.pack04;
import java.util.Scanner;
/*
大串中找小串方法改进,并要求用键盘录入
 */
public class StringTest04 {
    public static void main(String[] args) {
       // search();
        search2();
    }

    //我自己写的方法,虽然效果相同,但是好像不太好。无法自己改进。
    public static void search()
    {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您的字符串:");
        String s = sc.nextLine();
        System.out.println("请输入您要寻找的字符串:");
        String s1 = sc.nextLine();
        int count = 0;
        int index = -s1.length();

        while(index < s.length())
        {
            index = s.indexOf(s1,index+s1.length());
            if(index>0)
            {
                // System.out.println(index);
                count++;
            }
            else
                break;
        }
        System.out.println(s1+"一共出现了"+count+"次");
    }

    public static void search2()
    {
        /*
        用字符串截取的方式做
        先做一次index的统计操作,如果index不等于-1,那么就进入while循环,
        循环里面因为index不等于-1,所以就意味着第一次查找的成功。直接第一条语句就count++;
        然后更新index和大串的值。
         */
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您的字符串:");
        String s = sc.nextLine();
        System.out.println("请输入您要寻找的字符串:");
        String s1 = sc.nextLine();
        int count = 0;
       // int index = s.indexOf(s1);

        /*while(index !=-1)
        {
            count++;
            s = s.substring(s1.length()+index);
            index = s.indexOf(s1);

        }*/
        //合并代码
        int index;
        while((index=s.indexOf(s1))!=-1)
        {
            count++;
            s = s.substring(s1.length()+index);
        }
        System.out.println(count);
    }
}


String类的转换功能

package String.pack05;
/*
String 的转换功能:
    byte[] getBytes():将字符串转换为字节数组
    char toCharArray():将字符串转换为字符数组
    static String valueOf(char[] chs):将字符数组转换为字符串
        注意:valueOf方法可以将任意类型的数据转换为字符串
    String toLowerCase():将字符串转换为小写
    String toUpperCase():将字符串转换为答谢
    String concat(String str):拼接字符串
 */
public class StringDemo {
    public static void main(String[] args) {
        String s = "JAVASE";
        byte[] bys = s.getBytes();//转换为字节数组之后还需要用for循环来遍历,单独输出bys是一个地址。
        for (int i = 0; i < s.length(); i++) {
            System.out.println(bys[i]);
        }
        System.out.println(s.toCharArray());

        int num = 100;
        String ss = String.valueOf(num);
        System.out.println(ss);
        ss = "jjun";
        System.out.println(ss);
        char[] ch = s.toCharArray();
        System.out.println(ch);

        String sss = s.toLowerCase();
        System.out.println(sss);
        String sss2 = "ajun";
        System.out.println(sss2.toUpperCase());

        String s1 = "hello";
        String s2 = "world";
        System.out.println(s1.concat(s2));
        String s3 = s1+s2;
        System.out.println(s3);
        System.out.println(s);
    }
}

将一个字符串的首字母转换成大写,其余都为小写(只考虑大小写英文字符)

package String.pack05;
/*
需求:将一个字符串的首字母转换成大写,其余都为小写(只考虑大小写英文字符)

分析:
    A.获取字符串的第一个字符,并将其转换为大写
    B.获取字符串除了第一个字符以外的剩余字符,并将其转换成小写
    C.拼接 A 和 B
 */
public class StringTest {
    public static void main(String[] args) {
        String s = "hElLOworLD";

        String ss = s.substring(0,1);
        String sss = s.substring(1,s.length());

        String s2 = ss.toUpperCase()+sss.toLowerCase();
        System.out.println(s2);
        String s4 = s.substring(0,1).toUpperCase()+s.substring(1).toLowerCase();
        System.out.println(s4);
    }
}

字符串练习 

把数组中的数据按照指定格式拼接成一个字符串 

package String.pack06;
/*
需求:
    把数组中的数据按照指定格式拼接成一个字符串
    举例:
        int[] arr = {1,2,3};
        输出结果:
            [1,2,3]
        分析:
            最后要的结果是字符串类型,所以要先定义一个空的字符串对象来接收
            然后将字符串和"["拼接
            然后遍历int数组,得到每个元素
                判断钙元素是否为该数组的最后一个元素
                    是:直接拼接元素和"]"
                    不是:拼接元素,逗号和空格
            输出拼接后的字符串
             */
public class StringDemo {
    public static void main(String[] args) {
        int [] arr = {1,2,3};
        /*
        String s = "[";
        for (int i = 0; i < arr.length; i++) {
            if(i == arr.length-1)
                s += arr[i]+"]";
            else
                s = s+arr[i]+","+" ";
        }
        System.out.println(s);
        */
        print(arr);
    }

    //把代码用功能实现
    public static  void print(int[] arr)
    {
        String s = "[";
        for (int i = 0; i < arr.length; i++) {
            if(i == arr.length-1)
                s += arr[i]+"]";
            else
                s = s+arr[i]+","+" ";
        }
        System.out.println(s);
    }

}



 字符串反转

package String.pack06;
import java.util.Scanner;
/*
    字符串反转
    举例:键盘录入"abc"
    输出结果:"cba"

    分析:
       键盘录入
       将录入的字符串转换为字符数组类型
            char toCharArray():将字符串转换为字符数组
       将字符数组逆序并拼接成新的字符串
       最后输出
 */
public class StringDemo02 {
    public static void main(String[] args) {
        reverseString();
    }

    public static void reverseString()
    {
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        char[] chars = s.toCharArray();
        String result = "";
        for (int i = chars.length-1;i >= 0;i--) {
            result += chars[i];
        }
        System.out.println(result);
    }
}

 在一个字符串中统计指定字符串在其中出现的次数

package String.pack06;
/*
统计大串中小串出现的次数
举例:在字符串” woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun”
        中java出现了5次

        我的分析:
            先从整个字符串中返回第一次出现的索引
                有则count+1
                没有则返回
            然后将最原始的字符串截取一部分,从第一次java索引的位置到最后
            (或者直接从第一次索引的位置到最后  再一次统计java出现的次数)
            int indexOf(String str,int fromIndex):返回指定字符串在指定位置后第一次出现的索引


 */
public class StringTest03 {
    public static void main(String[] args) {
        String s = "woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun";
        int count = 0;

        /*int index = s.indexOf("java",0);
        System.out.println(index);
        count++;
        index = s.indexOf("java",index+4);
        System.out.println(index);
        */
        //循环改进:

        String s1 = "java";
        int index = -s1.length();
        while(index < s.length())
        {


            //index = s.indexOf("java",index+4);
            //这里的fromIndex 可以不用写4,因为写4就固定了了,不方便下次获取其他的字符串。

            index = s.indexOf(s1,index+s1.length());
            //System.out.println(index);
            if(index>0)
            {
               // System.out.println(index);
                count++;
            }
            else
                break;

        }
        System.out.println(s1+"一共出现了"+count+"次");
    }
}

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值