Java 如何对数组列表求和<;整数>;
我需要帮助对arrayList中的所有整数求和,并在文本视图中查看求和结果,所有八个数字都来自编辑文本这里是从编辑文本中获取整数并在文本视图中查看求和结果的完整代码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
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();