[英]Passing string to float array?
嗨,我有一串數字,想將它們放入浮點數組中,以便我可以訪問這些值。
// this bit works fine, data is split into string array.
String fdata[] = data.split(",");
Float array_f[] = new Float(fdata.length);
// this is the bit which throws an error and causes my app to crash.
for (int i = 0; i < fdata.length; i++){
float y = Float.parseFloat(fdata[i]);
array_f[i] = y;
}
錯誤是一個
java nullpointerexception:嘗試在空對象引用上調用虛擬方法 java.lang.string java.lang.split(java.lang.string)。
謝謝
除此之外,我想我需要多解釋一下,所以我提供了更多的代碼來展示我想要做什么。
String data; //does this need to define the number of bytes needed then?
start_Acq.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
channel_a = String.valueOf(channel_Acq.getSelectedItem());
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
connection.start_acquisition(channel_a);
data = connection.start_acquisition(channel_a);
connection.stop_acquisition();
}catch (Exception e ){
e.printStackTrace();
}
}
});thread.start();
data_recived.setText(data);
String fdata[] = data.split(",");
Float array_f[] = new Float[fdata.length];
for(int i = 0; i<fdata.length; i++){
float y = Float.parseFloat(fdata[i]);
array_f[i] = y;
}
}
});
您的代碼的問題在於初始化,您所要做的就是使用原始 float 而不是 Float :
String data = "123,5468,1,25,36";
String fdata[] = data.split(",");
float array_f[] = new float[fdata.length];
for (int i = 0; i < fdata.length; i++){
array_f[i] = Float.parseFloat(fdata[i]);
System.out.println(array_f[i]);
}
首先data
為空; 修復它並嘗試這個
float y = java.lang.Float.parseFloat(fdata[i]);
你的數組初始化錯誤,應該是這樣
Float array_f[] = new Float[fdata.length];
在長度之后你應該有一個分號而不是','
for (int i=0; i<fdata.length;i++){
編輯試試這個它會工作
String fdata[] = new String[]{"6.5", "8.5"}; //this bit works fine, data is split into string array.
Float array_f[] = new Float[fdata.length];
for (int i = 0; i < fdata.length; i++) { //this is the bit which throws an error and causes my app to crash.
float y = Float.parseFloat(fdata[i]);
array_f[i] = y;
}
System.out.println(Arrays.asList(array_f));
使用這個獲取字符串數組到字符串然后轉換浮點數
for(int i=0;stringarray.length>i;i++){float_var = Float.valueOf(string_array.get(i)); float_array.add(float_var);}
然后添加浮點數組
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.