【问题标题】:How would I go about changing the integers within a method to Strings?我将如何将方法中的整数更改为字符串?
【发布时间】:2020-04-23 06:12:57
【问题描述】:

我目前正在为 Java 开发一款名为“LCR”的骰子游戏。我不知道如何将 roll() 方法中的整数更改为字符串。我知道由于 int to String 错误,程序不会按原样运行,但我们应该根据骰子的滚动返回“D”、“L”、“C”或“R”。

我确实将 roll() 方法设为 String,但是,这会使其他类复杂化。

我尝试了多种将整数转换为字符串的方法,例如 toString 方法、Integer.valueOf() 方法等等。我不知道我是否必须为这种转换创建一个单独的方法,或者我是否应该将 roll() 方法保留为字符串。

非常感谢任何帮助。

import java.util.Random;

// Create class
public class Die_2
{
    private int faceDie = 1;

    // Create method: roll()
    // RETURN D, R, L, or C depending on roll results...
    public int roll ()
    {
        // Use random 
        Random randInt = new Random();
        int faceDie = randInt.nextInt(6) + 1;

        if (faceDie < 4.0/ 8.0) 
            faceDie = 4;
        else if (faceDie < 5.0/ 8.0)
            faceDie = 5;
        else if (faceDie < 6.0/ 8.0)
            faceDie = 6;    

        // Return D, L, C, R...
        if (faceDie == 1 || faceDie == 2 || faceDie == 3)
        {       
            return "D";
        }
        else if (faceDie == 4)
        {   
            return "L";
        }
        else if (faceDie == 5)
        {   
            return "C";
        }
        else 
        {   
            return "R";
        }   
    }

【问题讨论】:

    标签: loops class object methods


    【解决方案1】:

    嗯,首先要做的是标记方法,使其返回一个字符串。

    而且,鉴于您正在创建一个介于 1 和 6 之间的随机值,我不确定当它小于一半、八分之五或四分之三时执行的代码是否非常有用 :-)您可能应该摆脱它。

    最后,您最好在某个构造函数中创建randInt 对象,而不是每次调用该函数时都实例化一个新对象。

    除了这三样东西,你应该没问题,还有一点代码清理:

    import java.util.Random;
    
    public class HelloWorld {
        Random randInt;
    
        public HelloWorld() {
            randInt = new Random();
        }
    
        public String roll ()
        {
            int faceDie = randInt.nextInt(6) + 1;
    
            if (faceDie <= 3) return "D";
            if (faceDie == 4) return "L";
            if (faceDie == 5) return "C";
            return "R";
        }
    
        public static void main(String []args) {
            HelloWorld hw = new HelloWorld();
            System.out.println(hw.roll());
        }
    }
    

    当然,您可以极大地简化它,只需使用值05 并索引到您想要的值的字符串。如果有 很多 种选择,我不会使用它,但六个应该没问题,然后 roll() 代码变为(其他一切保持不变):

    public String roll() {
        int index = randInt.nextInt(6);
        return "DDDLCR".substring(index, index + 1);
    }
    

    【讨论】:

      猜你喜欢
      • 2016-07-28
      • 1970-01-01
      • 2020-07-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-31
      • 1970-01-01
      • 2013-09-15
      • 2013-09-25
      相关资源
      最近更新 更多