我需要解析一个应用程序的输入字符串,并且有一个与java如何评估字符串 split()方法的结果有关的问题。
例如,在下面的代码中:
} else if (arg.equals("-multiplePaths")) {
// Check if we have multiple paths
if (args[count++].contains(":")) {
for(String tmpIDLPath : args[count-1].split(":"))
m_includePaths.add(tmpIDLPath);
} else {
// Only one
m_includePaths.add(args[count-1]);
}
如何评估for循环?拆分操作是为每次迭代计算一次还是在开始时计算一次?
答案 0 :(得分:2)
您循环的数组是每个循环计算一次。
BTW你的支票是多余的。
} else if (arg.equals("-multiplePaths")) {
for(String tmpIDLPath : args[count-1].split(":"))
m_includePaths.add(tmpIDLPath);
或
} else if (arg.equals("-multiplePaths")) {
Collections.addAll(m_includePaths, args[count-1].split(":"));