【发布时间】:2014-04-21 13:03:25
【问题描述】:
删除玩家用户1
代码在控制台上的上述输入下工作正常。它为我成功删除了播放器“user1”。但是,如果用户没有提及任何用户名,则会提示删除数组列表中存在的所有玩家。
removeplayer(后跟 enter),下面的代码失败,因为 str[1] 在这里什么都没有。 但我希望 str[1] 好像这个值为空,它可以帮助我删除所有玩家。
param="0";
System.out.print(">");
//type_op= in.next();
String str=in.nextLine();
String[] str1=str.split(" ");
type_op = str1[0];
param = str1[1];
String[] param_split = param.split(",");
if(type_op.equals("removeplayer") && param.equals(null))
removeAllPlayers();
else if(type_op.equals("removeplayer"))
removeplayer();
我也尝试过使用 next(),但在这种情况下,问题会变得更加复杂,因为在这种情况下,只有 removeAllPlayers() 有效。
【问题讨论】:
-
我不确定是什么问题...当用户只在控制台中写入
removeplayer时是否会出现错误?如果是,则必须检查str1.length是否为1。如果是,则分配param=null。如果不是,则分配param = str1[1]。 -
是的,现在可以通过检查 str1 的长度为 1 来工作。干杯!!
-
我得到了这个工作。但是,一旦任何操作完成,这段代码[System.out.print(">");String str = in.nextLine();] 就会额外运行一次。这发生在我的 3 次手术中。我调试并检查了问题所在,但是我不知道出了什么问题。有趣的是,上面的 2 行代码为某些操作运行了额外的时间。编译器转到 in.nextLine(),不要求我提供输入,然后在它要求输入的下一次迭代中重新运行。其中一次迭代正在发生而没有输入任何值。
标签: java string split tokenize