gpt4 book ai didi

android - 如何在 Java (Android) 中获取整数的长度

转载 作者:太空狗 更新时间:2023-10-29 16:37:50 26 4
gpt4 key购买 nike

因此,如果我的值为 1234,则输出应该为 4。

我写了下面的代码,但不知道我做错了什么。这是一个将两个数字相加的应用程序。所以我有两个 EditTextfields。但是,如果 EditTextfield 留空,应用程序就会崩溃。所以我想到将 0 的值分配给一个一直留空的 EditTextfield,因为它(应该)有一个 0 的字符长度。

这应该会得到正确的结果:

例如,如果 EditTextfield“firstnumET”的值为 5 而“secondnumET”留空:

5 + 0 = 5

问题可能是


private int firstnum;
private int secondnum;
private int total;


EditText firstnumET;
EditText secondnumET;
TextView ansTV;
Button button;

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cal2_numbers);


firstnumET = (EditText) findViewById(R.id.edittxt1);
secondnumET = (EditText) findViewById(R.id.edittxt2);
ansTV = (TextView) findViewById(R.id.ans);
button = (Button) findViewById(R.id.btn);


button.setOnClickListener(new ClickButton());



}

private class ClickButton implements Button.OnClickListener {

@Override
public void onClick(View v) {


firstnum = Integer.parseInt(firstnumET.getText().toString());
secondnum = Integer.parseInt(secondnumET.getText().toString());

int cache1 = Integer.toString(firstnum).length();
int cache2 = Integer.toString(secondnum).length();
if (cache1 == 0) {
ansTV.setText(Integer.toString(secondnum));
}
if (cache2 == 0) {
ansTV.setText(Integer.toString(firstnum));
}



total = firstnum + secondnum;

ansTV.setText(Integer.toString(total));
}
}

最佳答案

评论太长了,你为什么不检查你的字符串,然后根据它们的长度设置它们(如果它们不为空)。

String firstString = firstnumET.getText().toString();
firstNum = (firstString.trim().equals(""))? 0: firstString.length();

String secondString = secondnumET.getText().toString();
secondNum = (secondString.trim().equals(""))? 0: secondString.length();

ansTV.setText(Integer.toString(firstNum + secondNum));

显然,您可以让它变得更复杂,检查以确保字符串仅包含数值,从而确保您不会获得非数字字符串的长度。

String.trim 删除空格,这有助于避免编辑文本充满空格。

关于android - 如何在 Java (Android) 中获取整数的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24192506/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com