【问题标题】:Noob, creating string method's indexof and substringNoob,创建字符串方法的 indexof 和 substring
【发布时间】:2014-10-20 17:27:21
【问题描述】:

作为一项任务,我们应该创建复制字符串方法所做的方法。我们只是在学习方法,我理解它们,但是很难让它发挥作用。 给定: private String st = "";

public void setString(String p){
        st = p;
    }

    public String getString(){
        return st;
    }

我需要创建public int indexOf(char index){}public String substring(int start, int end){} 我已经成功创建了charAt 和equals,但我需要一些帮助。我们只允许使用字符串方法 charAt()、length() 和 + 运算符。没有阵列或任何更先进的东西。这就是我猜你开始这些方法的方式:

public int indexOf(char index){
        for(int i = 0; i < st.length(); i++){
            return index;
        }
        return 0;
    }

    public String substring(int start, int end){
        for(int i = 0; i < st.length(); i++){

        }
        return new String(st + start);
    }

谢谢!

这是我的两种工作方法:

public boolean equals(String index){
        for(int a = 0; a < index.length() && a < st.length(); a++){
            if(index.charAt(a) == st.charAt(a) && index.length() == st.length()){
                return true;
            }
            else{
                return false;
            }
        }
        return false;
    }

public char charAt(int index){
        if(index >= 0 && index <= st.length() - 1)
            return st.charAt(index);
        else
            return 0;
    }

【问题讨论】:

    标签: string methods substring indexof


    【解决方案1】:

    对于您的indexOf 方法,您走在正确的轨道上。您需要修改循环中的代码。由于您正在遍历整个字符串,并且您只有两种方法可用,这将最有助于您从字符串中获取字符?看看你的其他方法(equalscharAt)看看你是怎么做的,它可能会给出提示。请记住,您希望在字符串中找到一个字符并打印出找到它的索引。

    对于您的substring 方法,您需要做的是获取从start 索引开始表示的所有字符,直到end 索引。循环是一个好的开始,但您需要一个基础 String 来保存您的进度(您需要一个空字符串)。循环的起点和终点需要查看。对于substring,您希望获取从start 开始的所有内容以及end 之前的所有内容。例如,如果我执行以下操作:

    String myString = "Racecar";
    String sub = myString.substring(1, 4);
    System.out.println(sub);
    

    我应该得到输出ace

    我会给你答案,但我认为帮助指导你的推理会给你带来更多好处。享受你的任务!

    【讨论】:

    • 非常感谢!发现 index of 比我尝试做的要容易得多,我发现尝试将 java 翻译成英文并写出我需要做的一个好的解决方法,谢谢你不只是给我答案
    • 没问题!很高兴我能帮上忙。