将NSData转换为Java float?

问题描述:

因此,我正在为我的iphone编写一个应用程序,该应用程序与使用套接字运行Java应用程序的计算机进行网络连接。但是当我传输数据时,我必须从我的iphone发送一个NSData对象,当然Java程序不知道如何解释它。我怎样才能解决这个问题?我需要在两个应用程序之间发送3个浮点值。将NSData转换为Java float?

任何帮助,将不胜感激......

你说你发送NSData对象 - 为什么?

如果可以,请将其发送为String,并在Java端执行Float.parseFloat(str);

如果您需要一次发送三个值,请在它们之间提供一个分隔符,例如;,并在Java中执行str.split(";");。这会给你一个String[],你可以使用上面提到的方法解析每个值。简化的,是这样的:

String delimitedFloats = readFloatsFromSocket(); 
for (String floatStr : delimitedFloats.split(";")) 
{ 
    float f = Float.parseFloat(floatStr); 
    doSomething(f); 
} 

免责声明:我甚至不知道NSData的是,所以请原谅我,如果我的方式关闭或失去了一些东西明显。

float a,b,c; 
NSString *s = [NSString stringWithFormat:@"%g,%g,%g",a,b,c]; 
NSData *d = [s dataWithEncoding:NSUTF8StringEncoding]; 
// send d 

...

byte[] b = ...; // read data 
String s = new String(result); 
String[] ss = s.split(","); 
float a = Float.parseFloat(ss[0]); 
float b = Float.parseFloat(ss[1]); 
float c = Float.parseFloat(ss[2]); 
+0

真棒的感谢! – 2010-06-24 07:23:26