Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何对数组列表求和<;整数>;_Java_Arrays_Arraylist - Fatal编程技术网

Java 如何对数组列表求和<;整数>;

Java 如何对数组列表求和<;整数>;,java,arrays,arraylist,Java,Arrays,Arraylist,我需要帮助对arrayList中的所有整数求和,并在文本视图中查看求和结果,所有八个数字都来自编辑文本这里是从编辑文本中获取整数并在文本视图中查看求和结果的完整代码 public class MainActivity extends AppCompatActivity { EditText editText; Button button; TextView textView; int one, two, three, four, five, six, seven, eight; int

我需要帮助对arrayList中的所有整数求和,并在文本视图中查看求和结果,所有八个数字都来自编辑文本这里是从编辑文本中获取整数并在文本视图中查看求和结果的完整代码

 public class MainActivity extends AppCompatActivity {

EditText editText;
Button button;
TextView textView;

int one, two, three, four, five, six, seven, eight;

int Result;
private static final String TAG = MainActivity.class.getSimpleName();


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    editText = (EditText) findViewById(R.id.editText);
    button = (Button) findViewById(R.id.button);
    textView = (TextView) findViewById(R.id.text);

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {


            String data = editText.getText().toString();

            one = Integer.parseInt(data.charAt(0) + "");
            two = Integer.parseInt(data.charAt(1) + "");
            three = Integer.parseInt(data.charAt(2) + "");
            four = Integer.parseInt(data.charAt(3) + "");
            five = Integer.parseInt(data.charAt(4) + "");
            six = Integer.parseInt(data.charAt(5) + "");
            seven = Integer.parseInt(data.charAt(6) + "");
            eight = Integer.parseInt(data.charAt(7) + "");


            int[] mNumber = {one, two * 2, three, four * 2, five, six * 2, seven, eight * 2};
            for (int n : mNumber) {
                spiltInt(n);
            }
        }

    });
}

public void spiltInt(int x) {
    String number = String.valueOf(x);
    ArrayList<Integer> list = new ArrayList<>();
    for (int i = 0; i < number.length(); i++) {
        int j = Character.digit(number.charAt(i), 10);
        list.add(j);
    }



}
public类MainActivity扩展了AppCompatActivity{
编辑文本编辑文本;
按钮;
文本视图文本视图;
int一,二,三,四,五,六,七,八;
int结果;
私有静态最终字符串标记=MainActivity.class.getSimpleName();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText=(editText)findViewById(R.id.editText);
按钮=(按钮)findViewById(R.id.button);
textView=(textView)findViewById(R.id.text);
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
字符串数据=editText.getText().toString();
一=整数.parseInt(data.charAt(0)+“”);
two=Integer.parseInt(data.charAt(1)+“”);
三=整数.parseInt(data.charAt(2)+“”);
四=整数.parseInt(data.charAt(3)+“”);
五=整数.parseInt(data.charAt(4)+“”);
六=整数.parseInt(data.charAt(5)+“”);
seven=Integer.parseInt(data.charAt(6)+“”);
八=整数.parseInt(data.charAt(7)+“”);
int[]mNumber={1,2*2,3,4*2,5,6*2,7,8*2};
用于(整数n:mNumber){
spiltInt(n);
}
}
});
}
公共无效分片(int x){
字符串编号=字符串.valueOf(x);
ArrayList=新建ArrayList();
对于(int i=0;i
}你可以这样做

    //Assumig variables one,two,three,four,five,six are defined above as int
    int[] mNumber = {one, two * 2, three, four * 2, five, six * 2, seven, eight * 2};
        for (int n : mNumber) {
            spiltInt(n);
        }
       showSum(mNumber);

public void spiltInt(int x) {
    String number = String.valueOf(x);
    ArrayList<Integer> list = new ArrayList<>();
    for (int i = 0; i < number.length(); i++) {
      int j = Character.digit(number.charAt(i), 10);
      list.add(j);
     }
     int result = 0;
     for(Integer i:list){
        result+=i;
     }

      textView.setText(result+"");
  }

  public static void showSum(int[] array){
   int sum = 0;
   int digitSum = 0;
   for(int i=0;i<array.length;i++){
       sum+=array[i];

       String number = String.valueOf(array[i]);
       ArrayList<Integer> list = new ArrayList<>();
      for (int j = 0; j < number.length(); j++) {
         int k = Character.digit(number.charAt(j), 10);
         list.add(k);
      }
      for(Integer digit:list){
        digitSum+=digit;
     }
   }
   //you can set any of these into test view using setText method
   System.out.println(sum+"");
   System.out.println(digitSum+"");
 }
//假设变量1、2、3、4、5、6在上面定义为int
int[]mNumber={1,2*2,3,4*2,5,6*2,7,8*2};
用于(整数n:mNumber){
spiltInt(n);
}
showSum(mNumber);
公共无效分片(int x){
字符串编号=字符串.valueOf(x);
ArrayList=新建ArrayList();
对于(int i=0;i对于(int i=0;i您正在调用
spiltInt()
,这是一个
非静态方法,不能从静态上下文引用

只需将您的
spiltInt()
设置为
static
,并使用 在这种情况下,
main活动

您的代码变为

for (int n : mNumber) {
      MainActivity.spiltInt(n);

        }
 textView.setText(result+"");
现在,要打印结果,请将
result
变量设置为全局变量

并在
spiltInt()代码的末尾使用以下代码


假设您要对整数数组中的所有数字求和,下面是一个1-线性:

int digitSum = IntStream.of(numbers).flatMap(n -> ("" + n).chars()).map(i -> i - '0').sum();

现在还不太清楚你想要实现什么,你能举例说明吗?我编辑了一个问题@schiduluca拆分值有什么用吗?
int digitSum = IntStream.of(numbers).flatMap(n -> ("" + n).chars()).map(i -> i - '0').sum();