Java字符串的一些操作

package com.Test;

public class ControlString {
    public void First_toUpper(){
        /*给出一句英文句子:“let there be light”
         * 得到一个新的字符串,每个单词的首字母都替换成大写*/
        String S="let there be light";
        /*char[] c=S.toCharArray();
        S.charAt(0);
        for(int i=0;i<c.length;i++){
            if(c[i]==(char)32){     //当i为空格时,后一个字符设为大写
                char A=S.charAt(i+1);
                c[i+1]=Character.toUpperCase(A);
            }
        }
        c[0]=Character.toUpperCase(S.charAt(0));    //将第一个字符设为大写
        S=new String(c);
        System.out.println(S);*/

        //方法二
        String[] s1=S.split(" ");       //用空格进行分隔字符串,变成字符串数组
        for(int i=0;i<s1.length;i++){
            String s2=s1[i].substring(0,1).toUpperCase();     //将字符串数组的子字符串的第一个进行转大写
            String s3=s1[i].substring(1);       //子字符串下标1开始后面的字符
            s3=s2+s3;           //拼接回去
            System.out.print(s3+" ");     //打印
        }
        System.out.println();

    }
    public void count_same_p(){
        /*英文绕口令,统计这段绕口令中有多少个以p开头的单词*/
        int count=0;
        String s1="peter piper picked a peck of pickled peppers";
        String[] s2=s1.split(" ");  //字符串中的空格来将s1分成了长度为8的字符串数组
        for(int i=0;i<s2.length;i++){
            String s3=s2[i].substring(0,1);       //截取子字符串的首位
            if(s3.equals("p")){                     //比较字符串是否相等
                count++;
            }
        }
        System.out.println("以p开头的单词共有"+count+"个");

    }
    public void Low_toUpper(){
        /*把lengendary改成间隔大小写模式,即LeNgEnDaRy*/
        String s="lengendary";
        char[] s1=s.toCharArray();
        for(int i=0;i<s1.length;i+=2){
                s1[i]=Character.toUpperCase(s1[i]);
        }
        String s2=String.valueOf(s1);   //将字符数组转换成字符串
        System.out.println("转换之后的字符串为:"+s2);
    }
    public void replace_last() {
        //将最后一个two单词首字母大写
        String s = "Nature has given us that two ears, two eyes, and but one tongue, to the end that we should hear and see more than we speak";
        System.out.println(s);
        /*int a=s.lastIndexOf("two");     //找出字符串中最后一个出现two的下标
        char[] s1=s.toCharArray();          //转换成字符数组
        s1[a]=Character.toUpperCase(s1[a]);     //将这个下标对应的字符转换成大写
        s=new String(s1);                       //字符数组转换成字符串
        System.out.println(s);*/

        //方法二
        String[] s1 = s.split(" ");       //使用空格分隔字符串为字符数组
        for (int i = s1.length - 1; i > 0; i--) {         //从后往前,降低时间复杂度
            if (s1[i].equals("two")) {
                String s2 = s1[i].substring(0,1).toUpperCase();     //将首字符转换为大写
                String s3 = s1[i].substring(1);       //子字符串下标1开始后面的字符
                s1[i] = s2 + s3;
                break;
            }

        }
        for (String s4 : s1) {
            System.out.print(s4 + " ");     //打印子字符串数组
        }
    }
    public static void main(String[] args){
        ControlString c1=new ControlString();
        c1.First_toUpper();
        c1.count_same_p();
        c1.Low_toUpper();
        c1.replace_last();
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值