2010-09-27 224 views
0

有沒有一種方法或方法來讀取字符串中的字符,並將其置於一個新字符串中,直到出現某個字符爲止。 繼續閱讀<到>,但沒有更多。 謝謝xJAVA:從字符串中讀取字符串到某個字符

+0

你真的需要一次讀一個這些字符嗎? – Powerlord 2010-09-27 14:11:36

+2

從'<' to '>'?你不是在重新創建一個XML/HTML解析器嗎? – BalusC 2010-09-27 14:11:39

+0

@BalusC,我在想同一件事...... – 2010-09-27 14:13:58

回答

1

當然。你將需要:

  • 方法String.charAt(int)
  • +操作(或方法String.concat,或者,如果表現的事項,類StringBuilder
  • for聲明
  • ,也許一個if語句來與break聲明

聲明和運算符s在Java Tutorial和api javadoc中解釋。

(不,我不會提供一個實現,因爲你會學到一點通過複製)

0

實際上,你可以寫一個實用程序,它是

public class StringUtil { 

    public static String copy(String str, char startChar, char endChar) { 
     int startPos = str.indexOf(startChar); 
     int endPos = str.lastIndexOf(endChar); 

     if (endPos < startPos) { 
      throw new RuntimeException("endPos < startPos"); 
     } 

     char[] dest = new char[endPos - startPos + 1]; 
     str.getChars(startPos, endPos, dest, 0); 

     return new String(dest); 
    } 
}; 

PS未測試.. ..


或者,您可以

String result = str.substring(startPos, endPos + 1); //If you want to include the ">" tag. 
+1

你讓我一直等到'char []'行。該行和後面的行似乎是重新創建'String.substring'的很多工作。 – Powerlord 2010-09-27 14:15:43

+0

天啊......我忘了'String.substring'(我發誓我正在尋找它)... – 2010-09-27 14:21:29

+0

而'lastIndexOf()'可能不是你所需要的。例如,這將失敗。 'text text text' and return' text''而不是''。 – BalusC 2010-09-27 14:22:36

0

這可能不是你想要的,但它會給你想要的字符串。

String desiredString="<Hello>".split("[<>]")[1];