【问题标题】:Processing Split (server)处理拆分(服务器)
【发布时间】:2016-06-20 17:55:08
【问题描述】:

我正在玩 2 人游戏,当我从服务器获取信息时,它的格式是“topic;arg1;arg2”,所以如果我发送位置,它是“PlayerPos;x;y”。 然后我使用带有字符“;”的拆分方法。 但是后来...我什至尝试在屏幕上写“PlayerPos”写对了,但是通过if无法获得。

这是我在服务器上发送信息的方式:

server.write("PlayerPos;"+player1.x+";"+player1.y);

以及我如何在客户端接受它:

String Get=client.readString();
  String [] Getted = split(Get, ';');
  fill(0);
  text(Get,20,20);
  text(Getted[0],20,40);
if(Getted[0]=="PlayerPos"){
  text("HERE",20,100);
  player1.x=parseInt(Getted[1]);
  player1.x=parseInt(Getted[2]);
}

它在屏幕上写着我“PlayerPos;200;200”,甚至在它下面写着“PlayerPos”。但它从不写“HERE”,也从不进入 if。 我的错在哪里?

【问题讨论】:

    标签: string split server client processing


    【解决方案1】:

    在比较 String 值时不要使用 ==。请改用equals() 函数:

    if(Getted[0].equals("PlayerPos")){
    

    来自the Processing reference

    要比较两个字符串的内容,请使用equals() 方法,如if (a.equals(b)),而不是if (a == b)StringObject,因此将它们与 == 运算符进行比较仅比较两个 Strings 是否存储在相同的内存位置。使用equals() 方法将确保比较实际内容。 (troubleshooting reference有更长的解释。)

    【讨论】:

    • 谢谢!我太傻了,我总是忘记这个>.
    • @DavidAliFoxKnapčok 没问题。请记住,如果您愿意,可以投票并接受有用的答案。
    猜你喜欢
    • 1970-01-01
    • 2017-04-30
    • 2017-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 2014-02-21
    • 1970-01-01
    相关资源
    最近更新 更多