2016-06-20 178 views
0

我在做2player遊戲,當我從服務器獲取信息時,它的格式爲「topic; arg1; arg2」,所以如果我發送位置,它是「PlayerPos; x; y」。 然後我用字符「;」使用分割方法。 但是,然後......我甚至試圖把它寫在屏幕上「PlayerPos」寫得對,但它不能通過如果獲得。處理分割(服務器)

這是我發送信息的服務器:

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」。但它從來沒有寫過「這裏」,它從來沒有成爲如果。 我的錯誤在哪裏?

回答

0

當比較String值時,請勿使用==。使用equals()函數:

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

the Processing reference

要的內容比較兩個字符串,請使用equals()方法,如if (a.equals(b)),而不是if (a == b)。 A StringObject,因此將它們與==運算符進行比較,僅比較兩個Strings是否存儲在相同的存儲器位置。使用equals()方法將確保比較實際內容。 (對troubleshooting reference有更長的解釋。)

+0

謝謝!我很愚蠢,我總是忘了這件事。< –

+0

@DavidAliFoxKnapčok沒問題。請記住,如果您喜歡,您可以上傳並接受有用的答案。 –