我尝试执行以下代码,但我得到了两个不同的响应。任何人都可以解释我下面的代码有什么问题。我希望得到第一个结果,就像第二个结果一样。
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
答案 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
的分隔符。