将NSData转换为Java float?

时间:2010-06-24 06:32:16

标签: java iphone networking nsdata

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您说发送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是,所以请原谅我,如果我离开或遗漏了一些明显的东西。