Java 计算器点函数问题
我正在做一个计算器,练习java和android开发。除了点函数外,其他功能都可以正常工作。这里是问题(见最后一点): 代码如下:Java 计算器点函数问题,java,android-studio,calculator,Java,Android Studio,Calculator,我正在做一个计算器,练习java和android开发。除了点函数外,其他功能都可以正常工作。这里是问题(见最后一点): 代码如下: case R.id.btn_dot: if (dotSet) { screenTV.append(""); } else if (isEmpty() || empty) { screenTV.append("0."); d
case R.id.btn_dot:
if (dotSet) {
screenTV.append("");
} else if (isEmpty() || empty) {
screenTV.append("0.");
dotSet = true;
count++;
} else {
screenTV.append(".");
dotSet = true;
count++;
}
操作数:
ase R.id.btn_add:
if (isEmpty()) {
screenTV.append("");
} else if (screenTvGet().endsWith("+")) {
screenTV.append("");
} else if (!isEmpty()) {
screenTV.append("+");
dotSet = false;
empty = true;
resultSet = false;
count = 0;
}
break;
还有一个号码:
case R.id.btn0:
if (resultSet) {
screenTV.append("");
} else if (isEmpty()) {
screenTV.append("");
} else {
screenTV.append("0");
empty = false;
}
最后,退格函数:
case R.id.btn_backspace:
String screenContent;
String screen = screenTV.getText().toString();
int screenMinusOne = screen.length() - 1;
String screenMinus = String.valueOf(screenMinusOne);
if (screen.endsWith("."))
dotSet = false;
if (isEmpty()) {
screenTV.setText("");
} else {
screenContent = screen.substring(0, screen.length() - 1);
screenTV.setText(screenContent);
}
break;
忘掉“伯爵”吧
我相信你能看到整个画面。现在我想知道,当我用“BackSpace function”清除一个操作数,并且前面的数字中有一个点时,点按钮不只是在屏幕上添加“.”或“0”。相反,它返回null或只是添加这个“”。我希望我的问题是清楚的 删除
点集
。你不需要它
然后,类似于您对btn\u add
执行此操作的方式:
}else if(screenTvGet().endsWith(“+”)){
屏幕电视。附加(“”);
使用btn\u dot
的正则表达式检查文本的最后部分是否有
:
}如果(screenTvGet().matches(“.\\\.\\d*”)匹配,则为else{
屏幕电视。附加(“”);
删除点集
。您不需要它
然后,类似于您对btn\u add
执行此操作的方式:
}else if(screenTvGet().endsWith(“+”)){
屏幕电视。附加(“”);
使用btn\u dot
的正则表达式检查文本的最后部分是否有
:
}如果(screenTvGet().matches(“.\\\.\\d*”)匹配,则为else{
屏幕电视。附加(“”);
谢谢,但是如果有两组以上的数字,比如“12.34+45+123+56”,它是否有效?@Rklearner我建议你学习基本正则表达式,这样你就可以自己回答这个问题了。这里的正则表达式是寻找一个点(
),后面只有数字(0-9)在字符串的末尾,这意味着它将为您提到的字符串返回false
。谢谢,伙计,我不熟悉正则表达式,我需要了解更多有关它的信息。谢谢,但是如果有两组以上的数字,比如“12.34+45+123+56”,它是否有效?@Rklearner我建议你学习基本正则表达式,这样你就可以自己回答这个问题了。这里的正则表达式是寻找一个点(
),后跟字符串末尾的数字(0-9),这意味着它对你提到的字符串返回false
。谢谢,伙计,我不熟悉正则表达式,我需要了解更多。