首页 > 解决方案 > 我将如何将方法中的整数更改为字符串?

问题描述

我目前正在为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";
        }   
    }

标签: loopsclassobjectmethods

解决方案


嗯,要做的第一件事是标记该方法,使其返回一个字符串。

而且,鉴于您正在创建一个介于 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());
    }
}

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

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

推荐阅读