2014-10-20 108 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