Java .split(";&124quot;)不&&x27;t返回正确的字符串
我正在将此字符串从客户端发送到服务器:Java .split(";&124quot;)不&&x27;t返回正确的字符串,java,Java,我正在将此字符串从客户端发送到服务器: Ar|0.04107356|-0.31299785|-0.9991561 该字符串是由服务器打印出来的,因此是正确的 “Ar”是数据包的名称,值是弓箭手要射出的箭的速度 为了得到这些值,我使用 String[] values = str.split("|"); 然后 a.shoot(Float.valueOf(values[1]), Float.valueOf(values[2]), Float.valueOf(values[3])); //a is
Ar|0.04107356|-0.31299785|-0.9991561
该字符串是由服务器打印出来的,因此是正确的
“Ar”是数据包的名称,值是弓箭手要射出的箭的速度
为了得到这些值,我使用
String[] values = str.split("|");
然后
a.shoot(Float.valueOf(values[1]), Float.valueOf(values[2]), Float.valueOf(values[3])); //a is an archer
问题是,值、值[2]和值[3]似乎已损坏或无法识别
我的完整代码如下:
public void handleMessage(String str){
System.out.println(str);
String[] values = str.split("|");
if (values[0].contains("Ar")){
System.out.println("X: " + values[1] + " Y: " + values[2] + " Z: " + values[3]);
}
System.out.println("Vals: " + values[0] + " " + values[1] + " " + values[2] + " " + values[3]);
if (true) return; //Returning so I can analyze de-bug messages without crashes.
for (Archer a : GameServer.archers){
a.shoot(Float.valueOf(values[1]), Float.valueOf(values[2]), Float.valueOf(values[3]));
}
当我打印“VAL”消息时,结果如下:
Vals: A r |
这里出了什么问题?在Java正则表达式中,水平条有一个特殊的含义,您必须将其转义才能用作文本:
String[] values = str.split("\\|");
您正在使用的哪个IDE没有警告您有关正则表达式的信息?很多IDE没有警告您,但您应该精通文档。@JaredBurrows我使用Eclipse。@MalikBrahimi是的,谢谢Joehot200。您介意标记作为答案吗?