2010-09-27 164 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];