java - If 语句检查数字的最后一位数字

标签 java swing if-statement numbers

我想通过 if 语句检查结束数字是什么。

例如

if (number ends in 1)

    tNumber.setText("1");

目前我的代码可以工作,但它非常大,并且当我为更大的数字构建更大的代码时会非常耗时。

这是到目前为止我的代码:

{
    timer2 = new Timer(100, new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {

            int newNumber = (int) (Math.random() * 10);
            tNumber4.setText("" + newNumber);
            index2++;
            if (index2 >= 10 ) {
                ((Timer) e.getSource()).stop();
                String s = tTo.getText();
                String t = tFrom.getText();
                int x = Integer.parseInt(t);
                int d = Integer.parseInt(s);
                int newNumber2 = (int) (Math.random() * (d + 1 - x) + x);
                if (newNumber2 == 10 || newNumber2 == 20 || newNumber2 == 30
                        || newNumber2 == 40 || newNumber2 == 50 || newNumber2 == 60
                        || newNumber2 == 70 || newNumber2 == 80 || newNumber2 == 90){
                    tNumber4.setText("0");
                }else if (newNumber2 == 11 || newNumber2 == 21 || newNumber2 == 31
                        || newNumber2 == 41 || newNumber2 == 51 || newNumber2 == 61
                        || newNumber2 == 71 || newNumber2 == 81 || newNumber2 == 91){
                    tNumber4.setText("1");
                }else if (newNumber2 == 12 || newNumber2 == 22 || newNumber2 == 32
                        || newNumber2 == 42 || newNumber2 == 52 || newNumber2 == 62
                        || newNumber2 == 72 || newNumber2 == 82 || newNumber2 == 92){
                    tNumber4.setText("2");
                }else if (newNumber2 == 13 || newNumber2 == 23 || newNumber2 == 33
                        || newNumber2 == 43 || newNumber2 == 53 || newNumber2 == 63
                        || newNumber2 == 73 || newNumber2 == 83 || newNumber2 == 93){
                    tNumber4.setText("3");
                }else if (newNumber2 == 14 || newNumber2 == 24 || newNumber2 == 34
                        || newNumber2 == 44 || newNumber2 == 54 || newNumber2 == 64
                        || newNumber2 == 74 || newNumber2 == 84 || newNumber2 == 94){
                    tNumber4.setText("4");
                }else if (newNumber2 == 15 || newNumber2 == 25 || newNumber2 == 35
                        || newNumber2 == 45 || newNumber2 == 55 || newNumber2 == 65
                        || newNumber2 == 75 || newNumber2 == 85 || newNumber2 == 95){
                    tNumber4.setText("5");
                }else if (newNumber2 == 16 || newNumber2 == 26 || newNumber2 == 36
                        || newNumber2 == 46 || newNumber2 == 56 || newNumber2 == 66
                        || newNumber2 == 76 || newNumber2 == 86 || newNumber2 == 96){
                    tNumber4.setText("6" );
                }else if (newNumber2 == 17 || newNumber2 == 27 || newNumber2 == 37
                        || newNumber2 == 47 || newNumber2 == 57 || newNumber2 == 67
                        || newNumber2 == 77 || newNumber2 == 87 || newNumber2 == 97){
                    tNumber4.setText("7" );
                }else if (newNumber2 == 18 || newNumber2 == 28 || newNumber2 == 38
                        || newNumber2 == 48 || newNumber2 == 58 || newNumber2 == 68
                        || newNumber2 == 78 || newNumber2 == 88 || newNumber2 == 98){
                    tNumber4.setText("8" );
                }else if (newNumber2 == 19 || newNumber2 == 29 || newNumber2 == 39
                        || newNumber2 == 49 || newNumber2 == 59 || newNumber2 == 69
                        || newNumber2 == 79 || newNumber2 == 89 || newNumber2 == 99){           
                    tNumber4.setText("9");
                }
            }
        }
    });
    timer2.setInitialDelay(0);

一定有比这更简单的方法:

if (newNumber2 == 10 || newNumber2 == 20 || newNumber2 == 30
                        || newNumber2 == 40 || newNumber2 == 50 || newNumber2 == 60
                        || newNumber2 == 70 || newNumber2 == 80 || newNumber2 == 90){

我希望得到类似的东西:

If (newNumber2 == *1){
tNumber4.setText("1")
}

我已经看过了这个景点,但我不知道如何表达我正在寻找的东西,所以这使得它变得困难。

如果有人可以提供帮助,我们将不胜感激。

最佳答案

newNumber2 % 10 返回newNumber2 的最后一位数字。 a % ba 除以 b 的余数 - 所以这是 newNumber2 除以 10 的余数,恰好是最后一位数字。

因此您可以使用,例如:

if((newNumber2 % 10) == 1)

(额外的括号是一种样式偏好,不是必需的)

关于java - If 语句检查数字的最后一位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29200672/

相关文章:

java - 使用php调用web服务

java - 雨云和交替行颜色

java - 我试图使用这个 "If else"条件而不使用 "System...println"

java - 找不到tomcat eclipse main jsp随机类

java - Java 应用程序的网络许可控制

java - 图像不会显示在 JLabel 中

java - TextField 中的 TextArea 中未显示字符串

javascript - 我如何在 mustache.js 中做一个 if with value?

Python 在循环中支持 `else`。 Ruby 中是否有类似的功能?

java - JSSC 在 Arduino 中不闪烁 LED 灯