我正在尝试创建一个程序,输出用户输入的气球和颜色的气球。我遇到问题的当前问题是,我正在尝试将字符串转换为int,以便我可以轻松输出气球数量。我测试了程序似乎运行良好,但无论我输入什么,输出到控制台都是0。我做错了什么?
package assignment_5_1;
import java.util.Scanner;
public class Assignment_5_1 {
public static int colorToNumber;
@SuppressWarnings("empty-statement")
public static void main(String[] args) {
Scanner input = new Scanner (System.in);
System.out.print("Enter The Number of Balloons You Want to See:");
int nob= input.nextInt();
String cob;
System.out.print("Enter the Color You Want The Balloons to Be:");
cob = input.next();
String rr= "red";
String oo = "orange";
String yy = "yellow";
String gg = "green";
String bb = "blue";
int result = colorToNumber;
System.out.println(result);
}
public static int colorToNumber(int ret, int cob, String rr, String oo, String yy, String gg, String bb)
{
if(rr.equals(cob)){ret = 1;}
if(oo.equals(cob)){ret = 2;}
if(yy.equals(cob)){ret = 3;}
if(gg.equals(cob)){ret = 4;}
if(bb.equals(cob)){ret = 5;}
return ret;
}
}
答案 0 :(得分:0)
您没有调用您的方法,只是为result
分配静态变量(public static int colorToNumber;
)的值:
int result = colorToNumber;
将其更改为:
int result = colorToNumber(cob, rr, oo, yy, gg, bb);
您还应该删除方法的ret
参数,并将cob
更改为String:
public static int colorToNumber(String cob, String rr, String oo, String yy, String gg, String bb)
{
int ret = 0;
if(rr.equals(cob)){ret = 1;}
if(oo.equals(cob)){ret = 2;}
if(yy.equals(cob)){ret = 3;}
if(gg.equals(cob)){ret = 4;}
if(bb.equals(cob)){ret = 5;}
return ret;
}
答案 1 :(得分:0)
更改int result = colorToNumber;
到
int result = colorToNumber("red");
或
int result = colorToNumber(rr);
我认为你想要的只是返回你为方法提供颜色时由你定义的颜色的索引吗?
您只需要在方法中执行一些小修改,如下所示:
public static int colorToNumber(String color) //You only need to receive 1 color
{
int ret=0;
if(rr.equals(cob)){ret = 1;}
if(oo.equals(cob)){ret = 2;}
if(yy.equals(cob)){ret = 3;}
if(gg.equals(cob)){ret = 4;}
if(bb.equals(cob)){ret = 5;}
return ret;
}
或者,如果您的jdk版本在1.7之后,您可以在colors(String)上使用switch case语句。
我不明白为什么你想要传递所有颜色,但你的方法只返回1 单值。