我具有以下布局,当我按下绿色按钮并将其显示在底部的TextView上时,我需要添加在EditText中输入的所有一位整数。我有点迷上了这个。抱歉,如果以前已经回答过,但我在这里找不到答案。
例如,在EditText中输入1234,结果为10。
我不知道使用数组或类似的方法是否有帮助。我记得以前做过这种运动,但我找不到。也许这是一个数组,我在另一个For内部分配了一个For。
public class AddingNumbers extends AppCompatActivity {
Button calculate;
TextView result;
EditText numbers;
int array[];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_addingnumbers;
calculate=(Button)findViewById(R.id.btn_calculate);
result=(TextView)findViewById(R.id.txt_result);
numbers=(EditText)findViewById(R.id.txt_numbers);
calculate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
}
答案 0 :(得分:0)
您可以进行与此类似的操作(只是一个想法)
calculate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String value = numbers.getText().toString();
char[] chars = value.toCharArray();
int total = 0;
for (int i = 0; i < chars.length; i++) {
int parsedInt = Character.getNumericValue(chars[i]);
if (parsedInt >= 0) {
total += parsedInt;
}
}
if (total > 0) {
result.setText(Integer.toString(total));
} else {
result.setText("");
}
}
});
答案 1 :(得分:0)
您可以使用IntStream
过滤并将单个字符转换为整数,首先过滤字符在'0'和'9'之间,然后减去字符'0'进行转换。然后,您可以使用sum()
上的IntStream
函数对数字求和。
String input = "There are 3 un1que numbers 1n 4 places here";
int sum = input.chars()
.filter(c -> c >= '0' && c <= '9') // remove non-digit characters
.map(c -> c - '0') // convert character to integer
.sum(); // sum the individual digits
放在一起,我们得到:
calculate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int sum = numbers.getText().chars()
.filter(c -> c >= '0' && c <= '9')
.map(c -> c - '0')
.sum();
result.setText(String.valueOf(sum)));
}
});