问题描述
我必须从文件中读取数据,并且刚刚在StringTokenizer中将一些示例数据作为String输入。我在这里不明白我的代码有什么问题。有人可以建议吗?
import java.util.StringTokenizer;
public class rough {
public static void main(String[] args) throws Exception {
StringTokenizer itr = new StringTokenizer("PKE2324 02-12-2020 200"
+ "\nMJD432 19-05-2019 150");
while (itr.hasMoretokens()){
String line = itr.nextToken().toString();
String[] tokens = line.split(" ");
String[] date = tokens[1].split("-");
String yr = date[2];
String reg = tokens[0];
String regy = new String(reg + " " + yr);
System.out.println(regy);
}
}
}
我想以字符串形式获取注册号和年份。当我运行它时,我不断得到ArrayIndexOutofBounds
解决方法
这是由于逻辑错误和不适当的分隔符引起的运行时错误类型。
假设您要使用换行符对大字符串进行标记,请使用\n
作为StringTokenizer的分隔符。
看看下面满足您的用例的更正代码:
import java.util.StringTokenizer;
public class rough {
public static void main(String[] args) throws Exception {
StringTokenizer itr = new StringTokenizer("PKE2324 02-12-2020 200"
+ "\nMJD432 19-05-2019 150","\n");
while (itr.hasMoreTokens()){
String line = itr.nextToken().toString();
String[] tokens = line.split(" ");
String[] date = tokens[1].split("-");
String yr = date[2];
String reg = tokens[0];
String regy = new String(reg + " " + yr);
System.out.println(regy);
}
}
}
输出:
PKE2324 2020
MJD432 2019
,
此行引起的异常
console.log(
accordionItem.children[0].firstChild.textContent
)
line = PKE2324,因此tokens [] = {“” PKE2324“}->长度= 1 tokens [1]-> ArrayIndexOutOfBoundException
要解决此问题:
<div id="accordionItem" class="filter_middle-stage2-list_wrapper">
<li style="font-weight: bold;">Pens<span>(1200)</span></li>
</div>
默认分隔符为空格。 如果要使用其他分度,则应在构造函数中传递分度。