java split()删除第一个单词

时间:2015-03-31 14:32:26

标签: java split

我尝试执行以下代码,但我得到了两个不同的响应。任何人都可以解释我下面的代码有什么问题。我希望得到第一个结果,就像第二个结果一样。

try
{
    String line ="<acc><add><s>alpha/s><ed>1234567891011</ed></add></acc><acc><add><s>beta</s><ed>1234567891011</ed></add></acc>";
    String eachLine = new String(line);
    if (eachLine.startsWith("<acc>"))
    {
        for (String allLine : eachLine.split("<acc>"))
            System.out.println(allLine);

    }
    String Str = new String("Welcome-to-Tutorialspoint.com");
    System.out.println("");
    System.out.println("Return Value :");
    if (Str.startsWith("Welcome"))
    {
        for (String retval : Str.split("-"))
        {
            System.out.println(retval);
        }
    }

}
catch (Exception e)
{
    e.printStackTrace();
}

输出:

<add><s>alpha/s><ed>1234567891011</ed></add></acc>
<add><s>beta</s><ed>1234567891011</ed></add></acc>

返回值:

Welcome
to
Tutorialspoint.com

2 个答案:

答案 0 :(得分:0)

String line = "<acc><add><s>alpha/s><ed>1234567891011</ed></add></acc><acc>   <add><s>beta</s><ed>1234567891011</ed></add></acc>";
List<Integer> inbdexArray = new ArrayList<Integer>();
for (int index = line.indexOf("<acc>");
         index >= 0;
         index = line.indexOf("<acc>", index + 1))
    {
     inbdexArray.add(index);
    }

 System.out.println(line.substring(inbdexArray.get(0), inbdexArray.get(1)));

有帮助吗?

答案 1 :(得分:0)

您可以通过替换

来实现这一目标
System.out.println(retval);

System.out.println("<acc>" + retval);

如果您确定在每种情况下都有</acc>作为最外面的标记。您的<acc>消失了,因为它被用作split的分隔符。