loops - 我将如何将方法中的整数更改为字符串?
问题描述
我目前正在为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";
}
}
解决方案
嗯,要做的第一件事是标记该方法,使其返回一个字符串。
而且,鉴于您正在创建一个介于 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());
}
}
当然,您可以通过仅使用这些值并索引到您想要的值的字符串来大大简化它。如果有很多选择,我不会使用它,但六个应该没问题,然后代码变成(其他一切保持不变):0
5
roll()
public String roll() {
int index = randInt.nextInt(6);
return "DDDLCR".substring(index, index + 1);
}
推荐阅读
- ios - 尽管使用了工作区,但 Azure Pipeline '没有这样的模块'
- firefox-addon-webextensions - JSON.parse: end of data after property value in object at line 61 column 2 of the JSON data
- java - 集群中的 Tomcat TLS 会话恢复
- bash - 在我现有的关键字检测脚本中引入一个函数,该函数将在预定时间段后重新检查相同的条件
- splunk - 有没有办法在计数层中按字典顺序对 top 命令的输出进行排序
- r - Rstudio代码使用断点和ctrl-Enter乱序执行?
- excel - Dynamically add a formula with my Excel userform everytime I hit submit
- php - AWS Lightsail 上的错误“检测到捆绑包的循环依赖项”,在 XAMP 中工作正常
- assembly - 如何管理 JMP CALL POP 例程中的结构?
- javascript - 如何在时钟应用程序中用当前时间自动替换过去的秒/分钟/小时