습도 측정 문자열이 공백없이 표시되므로 Android 앱에 결과를 표시 할 때 다음과 같이 표시됩니다. 36.5036.5036.5036.2036.2036.2036.2036.10. 이제 습도를 그래프로 나타내려고합니다. 따라서 숫자를 나누어 배열에 저장해야합니다. ,문자열을 분할하여 배열에 저장하는 방법
String parts[] = response.split("(?<=\\G.{5})");
double[] partsD = new double[parts.length];
for(int i = 0; i < parts.length; i++)
{
partsD[i] = Double.parseDouble(parts[i]);
}
내가 문제가 코드의 일부에 있음을 확신 :
double[] temp= {36.50, 36.50, 36.50, 36.20, 36.20, 36.20, 36.10};
이 내가 뭘하려하지만, 그 (응용 프로그램 충돌) 작동하지 :이 같은 것을 필요 나는 그것을 버리려고했기 때문에 상상의 온도로 배열을 만들었고 잘 그렸습니다.
12-02 12:08:52.484: E/AndroidRuntime(27004): FATAL EXCEPTION: main
12-02 12:08:52.484: E/AndroidRuntime(27004): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.Graph/com.Graph.second}: java.lang.NumberFormatException: Invalid double: "36.5036.5036.5036.2036.2036.2036.2036.1036.1036.1036.1036.1036.1036.1036.1036.1036.1036.1036.1036.10 "
12-02 12:08:52.484: E/AndroidRuntime(27004): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307)
12-02 12:08:52.484: E/AndroidRuntime(27004): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2357)
12-02 12:08:52.484: E/AndroidRuntime(27004): at android.app.ActivityThread.access$600(ActivityThread.java:153)
12-02 12:08:52.484: E/AndroidRuntime(27004): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247)
12-02 12:08:52.484: E/AndroidRuntime(27004): at android.os.Handler.dispatchMessage(Handler.java:99)
12-02 12:08:52.484: E/AndroidRuntime(27004): at android.os.Looper.loop(Looper.java:137)
12-02 12:08:52.484: E/AndroidRuntime(27004): at android.app.ActivityThread.main(ActivityThread.java:5226)
12-02 12:08:52.484: E/AndroidRuntime(27004): at java.lang.reflect.Method.invokeNative(Native Method)
12-02 12:08:52.484: E/AndroidRuntime(27004): at java.lang.reflect.Method.invoke(Method.java:511)
12-02 12:08:52.484: E/AndroidRuntime(27004): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
12-02 12:08:52.484: E/AndroidRuntime(27004): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
12-02 12:08:52.484: E/AndroidRuntime(27004): at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:112)
12-02 12:08:52.484: E/AndroidRuntime(27004): at dalvik.system.NativeStart.main(Native Method)
12-02 12:08:52.484: E/AndroidRuntime(27004): Caused by: java.lang.NumberFormatException: Invalid double: "36.5036.5036.5036.2036.2036.2036.2036.1036.1036.1036.1036.1036.1036.1036.1036.1036.1036.1036.1036.10"
12-02 12:08:52.484: E/AndroidRuntime(27004): at java.lang.StringToReal.invalidReal(StringToReal.java:63)
12-02 12:08:52.484: E/AndroidRuntime(27004): at java.lang.StringToReal.parseDouble(StringToReal.java:269)
12-02 12:08:52.484: E/AndroidRuntime(27004): at java.lang.Double.parseDouble(Double.java:295)
12-02 12:08:52.484: E/AndroidRuntime(27004): at com.Graph.second.onCreate(second.java:49)
12-02 12:08:52.484: E/AndroidRuntime(27004): at android.app.Activity.performCreate(Activity.java:5104)
12-02 12:08:52.484: E/AndroidRuntime(27004): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
12-02 12:08:52.484: E/AndroidRuntime(27004): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2261)
12-02 12:08:52.484: E/AndroidRuntime(27004): ... 12 more
가 당신의 소중한 시간 내 주셔서 감사합니다 여기에
로그 고양이입니다.
http://stackoverflow.com/a/3481842/4116091 –
그냥 'response.split (".");'을 사용하십시오. – greenapps
'response.equals ("36.5036.5036.5036.2036.2036.2036.2036.10")'인 경우 정규 표현식이 잘못되어'response'는 나뉘 지 않으며'parts == {response} ' – jhamon