【发布时间】:2016-12-11 12:41:27
【问题描述】:
我有一个示例输入文件如下 -
操作码 R1、R2、R3
操作码 R2,#30
while(scanner.hasNextLine()){
StringTokenizer st = new StringTokenizer(scanner.nextLine());
Instruction instruction = new Instruction();
instruction.setAddress(PC + PC_increment);
instruction.setOpcode(st.nextToken());
if(st.hasMoreTokens()) {
instruction.setDest(st.nextToken());
}
if(st.hasMoreTokens()) {
String nextToken = st.nextToken();
if(nextToken.charAt(0)== '#') {
instruction.setSource_1(nextToken.split("#")[1]);
}
else {
instruction.setSource_1(nextToken);
}
}
if(st.hasMoreTokens()) {
instruction.setSource_2(st.nextToken());
}
}
当我尝试打印令牌时,我得到“R1”和“R2”作为输出。但是,我期望只有 R1 或 R2 作为输出。另外,在第二行的情况下,我不想要#。我该怎么做?我做错了什么?
【问题讨论】:
标签: java delimiter stringtokenizer