String方法练习

最近在补java基础,因为不是科班所以基础并不是特别好,有些内容学习的时间太久了,忘了一些,所以刻意找了一些视频补补基础。
String中有许多方法,在不使用StringBuilder和StringBuffer类的情况下设计一些方法,完成需求。里面最后第7,8个方法是参考渡一教育郑中拓老师的做法,有些方法我写出来后发现写的跟讲解的基本一样,最后两个方法觉得还是郑中拓老师写的好。

代码

public class StringTest {
    //1.实现字符串的反转
    public String reverse(String str) {
        char[] charstr = str.toCharArray();
        for (int i = 0; i < charstr.length / 2; i++) {
            char temp = charstr[i];
            charstr[i] = charstr[charstr.length - 1 - i];
            charstr[charstr.length - 1 - i] = temp;
        }
        return new String(charstr);
    }

    //2.将字符串正序和反序进行连接
    public String concat(String str) {
        String restr = reverse(str);
        return str.concat(restr);
    }

    //3.判断给定字符串是否回文
    public boolean isHuiwen(String str) {
//        boolean result=true;
//        char[] charstr=str.toCharArray();
//        for(int i=0;i<charstr.length/2;i++){
//            if(charstr[i]!=charstr[charstr.length-1-i])
//                result=false;
//        }
//        return true;
        String restr = reverse(str);
        if (str.equals(restr))
            return true;
        else
            return false;
    }

    //4.将给定的字符串向左移动count位
    public String rightMove(String str, int count) {
        if (count > str.length())
            count %= str.length();
        String prestr = str.substring(0, count);
        String substr = str.substring(count);
        return substr.concat(prestr);
    }

    //5.寻找字符串中最长的那个
    public String maxLengthString(String... strs) {
        String result = strs[0];
        int maxLength = strs[0].length();
        for (int i = 1; i < strs.length; i++) {
            if (strs[i].length() > result.length()) {
                maxLength = strs[i].length();
                result = strs[i];
            }
        }
        return result;
    }

    //6.设计一个方法,统计一个字符在字符串中出现的次数
    public int findCount(String str, char ch) {
//        int count = 0;
//        char[] charstr = str.toCharArray();
//        for(int i=0;i<charstr.length;i++){
//            if(ch==charstr[i])
//                count++;
//        }
//        return count;
        return str.length()-str.replace(String.valueOf(ch),"").length();
    }
    //7.将给定的字符串的首字母大写
    public String UpperFirst(String str){
        String result="";
        String[] substr=str.split(" ");
        for(int i=0;i<substr.length;i++){
            String word=substr[i];
            String first=word.substring(0,1).toUpperCase();
            String follow=word.substring(1);
            result=result.concat(first.concat(follow))+" ";
        }
        return result.trim();
    }
    //8.获取给定字符串中的数字
    public int findNumber(String str){
        String result="";
        for(int i=0;i<str.length();i++){
            int num=str.codePointAt(i);
            if(num>=48&&num<=57){
                result=result+(char)num;
            }
        }
        return Integer.parseInt(result);
    }
}

写一个测试类测试一下,这里是用以前写过的代码的主类删除之后写的,所以起名没有很规范。

代码

public class FirstDemo {
    public static void main(String[] args){
        StringTest st=new StringTest();
        String result1=st.reverse("ok");
        System.out.println(result1);
        String result2=st.concat("ok");
        System.out.println(result2);
        boolean result3=st.isHuiwen("okko");
        System.out.println(result3);
        String result4=st.rightMove("abcdefg",2);
        System.out.println(result4);
        String result5=st.maxLengthString("abc","abcd","abcdefg","abc");
        System.out.println(result5);
        int result6=st.findCount("ababcdfrbaa",'a');
        System.out.println(result6);
        String result7=st.UpperFirst("this is a java project");
        System.out.println(result7);
        int result8=st.findNumber("gdgf7fghj7fhgjh9hjkgy4");
        System.out.println(result8);

    }
}

结果

ko
okko
true
cdefgab
abcdefg
4
This Is A Java Project
7794

没有把每个方法分开写,因为有点懒,嘿嘿。这里面的内容算是很基础的,但是对于Sting这个类的使用也会有更多的印象,如果后面又忘了那些方法,那就查一下API文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值