如何解决Android / Java:将数据拆分为数组并显示
| 我正在尝试做一些非常基础的事情!它不会起作用:(。我觉得我要转圈了。 这是摘要:我希望用户将一系列数字输入到EditText框中(以逗号分隔)。选择添加按钮后,拆分方法会将每个数字分成一个单独的String []插槽。通常,如果我可以使用此部分,则将数字从数组中拉出并转换为双精度数字,然后将它们用于一两个计算中。我尝试了几种不同的方法来完成此操作,看来问题出在split方法或for循环中。下面列出的代码返回一个空字符串。 同样,通过反复试验,我最终得到了一个return方法calculate()。一个onClick方法可以塞满多少东西?这是个坏主意吗?请根据需要尽可能地野蛮!!!我是android新手。提前致谢。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) {
String output = \"\";
for (int i = 0; i < a.length - 1; i++) {
output += \" \" + a[i];
} return output;
}
}
解决方法
在for循环中,您应该从0迭代到
a.length - 1
。这意味着循环必须看起来像:
for (int i = 0; i < a.length; i++) { /* ... */ }
但是您最好使用这样的方法:
public String calculate(String[] a) {
StringBuilder output = new StringBuilder();
for (String s : a) {
output.append(\' \').append(s);
}
return output.toString();
}
不幸的是,我认为它不能完全解决您的问题,但肯定可以解决一个错误。
, 尝试使用getEditableText()而不是geText()。
, 问题出在您的for循环中。
for (int i = 0; i < a.length - 1; i++) {
... 应该 ...
for (int i = 0; i < a.length; i++) {
我猜在所有测试中,您只是使用2个数字(用逗号分隔),我在代码中输入3个数字后就发现了问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。