2014-10-20 111 views
-1

作为一个赋值,我们应该创建方法来复制字符串方法所做的工作。我们只是在学习方法,我理解他们,但却无法使其发挥作用。 给出: private String st = "";Noob,创建字符串方法的索引和子字符串

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

    public String getString(){ 
     return st; 
    } 

我需要创建public int indexOf(char index){},并public String substring(int start, int end){}我succesfuly做的charAt,和等于但我需要一些帮助。我们只允许使用String方法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; 
    } 

回答

0

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

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

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

我应该得到输出ace

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

+0

非常感谢!想出了索引是比我试图做的更容易,我发现试图翻译Java到英语,并写出我需要做一个好方法解决,谢谢你不只是给我的答案 – Jack 2014-10-20 18:27:48

+0

不是问题!很高兴我能帮上忙。 – sfedak 2014-10-20 18:29:11