拆分功能问题?

时间:2014-04-21 13:03:26

标签: java string split tokenize

  

removeplayer user1

代码在控制台上使用上面的输入正常工作。它成功删除了玩家' user1'为了我。但是,如果用户未提及任何用户名,则会提示删除阵列列表中的所有玩家。

  

removeplayer(后跟enter),下面的代码失败,因为str [1]在这里什么都没有。   但我希望str [1]好像这个值为null,它可以帮助我删除所有玩家。

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()才能工作。

2 个答案:

答案 0 :(得分:3)

一个简单的解决方案是立即检查str1数组,以便通过检查数组长度来了解是否没有指定用户:

param = "0";

System.out.print(">");

//type_op= in.next();
String str = in.nextLine();

String[] str1 = str.split(" ");

type_op = str1[0];

if (type_op.equals("removeplayer") && str1.length == 1) {
    removeAllPlayers();
} else if (type_op.equals("removeplayer")) {

    param = str1[1];

    String[] param_split = param.split(",");

    removeplayer();
}

这只是一个简单而快速的解决方案,但应该可行。 我希望这会对你有所帮助。

答案 1 :(得分:0)

将其比作

if(type_op.equals(“removeplayer”)&& param == null

removeAllPlayers();