将NSData转换为Java浮点?

将NSData转换为Java浮点?,java,iphone,networking,nsdata,Java,Iphone,Networking,Nsdata,因此,我正在为我的iphone编写一个应用程序,它使用套接字与运行java应用程序的计算机联网。但是当我传输数据时,我必须从iphone发送一个NSData对象,当然java程序不知道如何解释它。我怎样才能解决这个问题?我需要在两个应用程序之间发送3个浮点值 任何帮助都将不胜感激……您说您有发送NSData对象-为什么 如果可以,将其作为字符串发送,并执行Float.parseFloat(str)在Java端 如果需要一次发送三个值,请在它们之间使用分隔符,例如,并执行str.split(;”)

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


任何帮助都将不胜感激……

您说您有发送NSData对象-为什么

如果可以,将其作为
字符串发送
,并执行
Float.parseFloat(str)在Java端

如果需要一次发送三个值,请在它们之间使用分隔符,例如
,并执行
str.split(;”)在Java中。这将为您提供一个
字符串[]
,您可以使用上述方法解析每个值。简化,类似这样:

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] );