String小项目方法使用 自闭ing

学习了toString 还有Sting的一些方法 我滴天啊 感觉自己白学了 跟着视频操作有时候还运行不了 完全失去了自信 一上午就做了两道题还是不太明白 心里面超级不舒服 中午吃完饭回来就休息一会 然后睡醒感觉自己充满干劲 花费了两个小时终于给这四个基础题干完了 过程也很不容易 发现API真的很重要里面记录的方法太多太多 只等下去多练练手 熟悉代码 感悟就是 看不懂先不要着急 细致滤清思路跟着视频敲 再看一遍解析 根据自己代码注释意思 会有很大的收获 能明白不少

项目一 反转字符串单词

反转字符串单词

编写一个方法,将一段文本中的各个单词的字母顺序翻转, 例如:“I like writing code best”,将变成"I ekil gnitirw edoc tseb"

public class Trim {

    public String mtTrim(String str){
        //定义一前一后的下标
        int index1 = 0;
        int index2 = str.length()-1;
        //遍历字符串 找到不是空格的字符为止
        for (int i =0;i<str.length();i++){
            if (str.charAt(i)!=' '){//下标为i的字符串char 不等于‘ ’时
                index1 = i;//下标值为i
                break;
            }
        }
        for (int i = str.length()-1;i>=0;i--){
            if (str.charAt(i)!=' ') {//从后往前遍历 直到出现不等于空格的字符串为止
                index2 = i;
                break;
            }
        }
        return str.substring(index1,index2+1);//截取字符串
    }

    public static void main(String[] args) {
        Trim t = new Trim();
        String s = t.mtTrim("   afaffa fafa feff  ");
        System.out.println(s);
    }
}

Trim()相同方法操作

写一个和 trim 功能相同的方法 思路: 1.定义两个变量,用来存储两个角标 2.分别从头和尾遍历字符串,直到找到第一个不为空格的字符
3.截取字符串

public class Trim {

    public String mtTrim(String str){
        //定义一前一后的下标
        int index1 = 0;
        int index2 = str.length()-1;
        //遍历字符串 找到不是空格的字符为止
        for (int i =0;i<str.length();i++){
            if (str.charAt(i)!=' '){//下标为i的字符串char 不等于‘ ’时
                index1 = i;//下标值为i
                break;
            }
        }
        for (int i = str.length()-1;i>=0;i--){
            if (str.charAt(i)!=' ') {//从后往前遍历 直到出现不等于空格的字符串为止
                index2 = i;
                break;
            }
        }
        return str.substring(index1,index2+1);//截取字符串
    }

    public static void main(String[] args) {
        Trim t = new Trim();
        String s = t.mtTrim("   afaffa fafa feff  ");
        System.out.println(s);
    }
}``````

压缩字符串

字符串压缩:利用字符重复出现的次数,编写一种方法,实现基本的字符 串压缩功能。比如,字符串“aabccdd”会变成“a2b1c2d2”。若“压缩”以后的字 符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文 字母(a-z)

import java.awt.peer.CanvasPeer;

public class Compress {

    public String compress(String s){
        //如果空字符 空串处理
        if (s.length() == 0){
            return s;
        }
        StringBuffer newstr = new StringBuffer();
        char ch =s.charAt(0);//要压缩的字符
        int js = 1;//要压缩的字符个数
        for (int i =1;i<s.length();i++){
            if (ch==s.charAt(i)){//当前的字符与压缩字符相同
                js++;//计数加一
            }else{//不同字符记录次数后 重新计数1
                newstr.append(ch);
                newstr.append(js);
                ch = s.charAt(i); //将新的字符赋给if循环继续
                js = 1;
            }
        }
        //获取最后一个字符重复数
        newstr.append(ch);
        newstr.append(js);
        //最后对比大小 返回长度更短的字符串
        return newstr.length()>s.length()?s:newstr.toString();
    }
    public static void main(String[] args) {
        Compress c = new Compress();
        String s = c.compress(" aabbbcdddddd");
        System.out.println(s);
    }

}

内容字符串存放方法中(内容有三个属性)

String s="name=王五 age=18 classNum=1101”; 将上面的字符串中包含的信息存放到 Student(里面有 name,age, classNum 三个属性)的对象中

public class Student {
    private String name;
    private Integer age;
    private Integer classNum;

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", classNum=" + classNum +
                '}';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Integer getClassNum() {
        return classNum;
    }

    public void setClassNum(Integer classNum) {
        this.classNum = classNum;
    }
}


public class StudentTest {
    public void test(){
        Student stu = new Student();
        String s = "name=王五 age=18 classNum=1101";
        String[] arr = s.split(" ");//用空格分隔开
        for (String s1 : arr) {
            String[] temp = s1.split("=");
            if (temp[0].equals("name")) {
                stu.setName(temp[1]);
            }else if(temp[0].equals("age")){
                stu.setAge(Integer.valueOf(temp[1]));
            }else if (temp[0].equals("classNum")){
                stu.setClassNum(Integer.valueOf(temp[1]));
            }

        }
        System.out.println("学生信息"+stu);
    }

    public static void main(String[] args) {
        StudentTest test = new StudentTest();
        test.test();
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值