Java 如何将整数值转换为内容不同的字符串
很抱歉,如果这个问题让人困惑,但我正在制作一个小的21点程序来测试我的java技能,到目前为止,我遇到了一个我想不出解决办法的问题 目前,我有一个为游戏创建卡片的卡片类,我有一个设置在整数值1-14之间的随机数生成器。但是,我如何编写一个方法来获取该整数值,并将其输出,如果整数值为11,字符串值将显示该卡为插孔,而不是11卡,以此类推 不幸的是,这是我目前所拥有的一切Java 如何将整数值转换为内容不同的字符串,java,string,integer,blackjack,Java,String,Integer,Blackjack,很抱歉,如果这个问题让人困惑,但我正在制作一个小的21点程序来测试我的java技能,到目前为止,我遇到了一个我想不出解决办法的问题 目前,我有一个为游戏创建卡片的卡片类,我有一个设置在整数值1-14之间的随机数生成器。但是,我如何编写一个方法来获取该整数值,并将其输出,如果整数值为11,字符串值将显示该卡为插孔,而不是11卡,以此类推 不幸的是,这是我目前所拥有的一切 private void assignCard(){ for(int i = 0; i < cardInH
private void assignCard(){
for(int i = 0; i < cardInHand.length; i++){
if(cardInHand[i] >= 11){
}
}
}
private-void-assignCard(){
for(int i=0;i=11){
}
}
}
我这里使用的方法的要点是遍历玩家手中的牌的内容,检查它们是否在11以上,这样就可以开始排序过程,在打印给用户的字符串值中,哪个数字对应正确的牌类型(杰克、皇后等)
尽管如此,我仍然只是一个编程新手,所以这个项目可能超出了我的技能水平,但是任何相关的建议/批评都非常感谢 将卡片的“名称”保存在字符串数组中,如
int cardNum = 11;
String [] cards = new String [] {"ace", "two", "three", ..., "jack", "queen", "king"};
System.out.println(cards[11 - 1]);
这样的解决方案允许您以后国际化卡名将卡的“名称”保留在字符串数组中,如
int cardNum = 11;
String [] cards = new String [] {"ace", "two", "three", ..., "jack", "queen", "king"};
System.out.println(cards[11 - 1]);
由于这样的解决方案允许您以后国际化卡名我不能100%确定您要求的是什么,但假设您希望接受整数数组并打印出卡名,这应该可以做到
private static void assignCard(int[] cardInHand){
for(int i = 0; i < cardInHand.length; i++){
if(cardInHand[i] == 11){
System.out.println("Jack");
}
if(cardInHand[i] == 12){
System.out.println("Queen");
}
if(cardInHand[i] == 13){
System.out.println("King");
}
if(cardInHand[i] == 1 ){
System.out.println("Ace");
}
if(cardInHand[i] > 2 && cardInHand[i] < 11){
System.out.println(i);
}
}
}
私有静态无效分配卡(int[]cardInHand){
for(int i=0;i2和卡地汉[i]<11){
系统输出打印LN(i);
}
}
}
我不能100%确定您要求的是什么,但假设您希望接收INT数组并打印出卡的名称,这应该可以做到
private static void assignCard(int[] cardInHand){
for(int i = 0; i < cardInHand.length; i++){
if(cardInHand[i] == 11){
System.out.println("Jack");
}
if(cardInHand[i] == 12){
System.out.println("Queen");
}
if(cardInHand[i] == 13){
System.out.println("King");
}
if(cardInHand[i] == 1 ){
System.out.println("Ace");
}
if(cardInHand[i] > 2 && cardInHand[i] < 11){
System.out.println(i);
}
}
}
私有静态无效分配卡(int[]cardInHand){
for(int i=0;i2和卡地汉[i]<11){
系统输出打印LN(i);
}
}
}
这里有一个名为Card的类,我们在其中为每张卡创建一个映射器。请注意,对于joker只使用0,但在for循环中,我从1开始,不包括它,如输出中所示。希望这有帮助
import java.util.Arrays;
import java.util.HashMap;
public class Card {
public int cardV;
public String cardS;
private HashMap<Integer, String> cardMapper;
Card(int newCardValue){
//create our mapper first
cardMapper = createCardMapping();
cardV = newCardValue;
//once the mapper is created we can now figure out the string of our card
cardS = FindCardStringRep(cardV);
}
private String FindCardStringRep(int key)
{
String cardString = "Card Doesn't Exist";
if(cardMapper.containsKey(key))
{
cardString = cardMapper.get(key);
}
return cardString;
}
public HashMap<Integer, String> createCardMapping()
{
HashMap<Integer, String> mapper = new HashMap<>();
String[] cardNames = {"joker", "ace", "two", "three", "four", "five", "six", "seven",
"eight", "nine", "ten", "jack", "queen", "king"};
//go through and create a mapping of the indices of cardNames to the String representations
//Note 0 = joker, ace = 1, two = 2 and so on
//we start at 1 so we ignore the joker anyways
for(int intVal = 1; intVal < cardNames.length; intVal++)
mapper.put(intVal, cardNames[intVal]);
return mapper;
}
}
这里有一个名为Card的类,我们在其中为每张卡创建一个映射器。请注意,对于joker只使用0,但在for循环中,我从1开始,不包括它,如输出中所示。希望这有帮助
import java.util.Arrays;
import java.util.HashMap;
public class Card {
public int cardV;
public String cardS;
private HashMap<Integer, String> cardMapper;
Card(int newCardValue){
//create our mapper first
cardMapper = createCardMapping();
cardV = newCardValue;
//once the mapper is created we can now figure out the string of our card
cardS = FindCardStringRep(cardV);
}
private String FindCardStringRep(int key)
{
String cardString = "Card Doesn't Exist";
if(cardMapper.containsKey(key))
{
cardString = cardMapper.get(key);
}
return cardString;
}
public HashMap<Integer, String> createCardMapping()
{
HashMap<Integer, String> mapper = new HashMap<>();
String[] cardNames = {"joker", "ace", "two", "three", "four", "five", "six", "seven",
"eight", "nine", "ten", "jack", "queen", "king"};
//go through and create a mapping of the indices of cardNames to the String representations
//Note 0 = joker, ace = 1, two = 2 and so on
//we start at 1 so we ignore the joker anyways
for(int intVal = 1; intVal < cardNames.length; intVal++)
mapper.put(intVal, cardNames[intVal]);
return mapper;
}
}
不知道您在寻找什么,像
stringcardname(intcardd)
这样的方法?这很简单。如果你不能做到这一点(仅仅是几个If
语句),那么你可能就太深了。你真正应该做的是,如果你的卡片类有一个整数表示,你应该有一个方法,或者更好的是,一个变量,这是该卡的value@RAZ_Muh_Taz这就是我心中的想法……也许我问题的措辞很糟糕。您将如何实现它?不知道您在寻找什么,一种类似stringcardname(intcardd)
的方法?这很简单。如果你不能做到这一点(仅仅是几个If
语句),那么你可能就太深了。你真正应该做的是,如果你的卡片类有一个整数表示,你应该有一个方法,或者更好的是,一个变量,这是该卡的value@RAZ_Muh_Taz这就是我心中的想法……也许我问题的措辞很糟糕。你将如何实现这一点?我来自1
的地方称为ace
我来自1
的地方称为ace