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个数字后就发现了问题。