问题描述
||
当我调试下面的代码时,它将\“,\”(分隔定界符)作为值存储在数组“ 0”中。当
parseDouble
达到那个值时,我得到a2ѭ。有任何想法吗?
package com.simplydesign.android.standarddev;
import android.app.Activity;
import android.os.Bundle;
import android.widget.*;
import android.view.*;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Button addBtn = (Button) findViewById(R.id.addBtn);
final EditText userData = (EditText) findViewById(R.id.editText1);
final TextView dataCollection = (TextView) findViewById(R.id.textView1);
addBtn.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String[] rawData;
rawData = userData.getText().toString().split(\",\");
dataCollection.setText(calculate(rawData));
}
});
}
public String calculate(String[] a) {
double[] convertedData = new double[a.length];
double sum = 0.0;
StringBuilder output = new StringBuilder();
int t = 0;
for (int f = 0; f<a.length;f++){
convertedData[f] = Double.parseDouble(a[t]);
t++;
}
for (int k = 0; k < convertedData.length; k++) {
sum += convertedData[k];
}
output.append(sum);
return output.toString();
}
}
经过大量的试验和错误,我得出的结论是我的问题来自错误的平台/仿真器组合。最初,我将项目平台设置为2.1,API值为7。
无论出于何种原因,当我使用逗号作为分隔符时,这都会引起问题。当我的数字带有小数点时(小数点看起来是空心的),这也给我带来了麻烦。
现在,我将项目设置为1.6,并且可以使用逗号和小数点。
尽管我找到了解决方案,但我仍然不明白为什么会这样。我觉得我创建的某些应用程序需要安装在至少2.5的高平台上。对于大多数应用程序来说1.6可以吗?在此问题上的任何建议将不胜感激。
解决方法
尝试使用TextUtils.split