- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
到目前为止,我已经弄清楚了我的程序,只是我不理解给我的这些说明(或者至少不理解如何执行它们)。
当我输入 10 时,它会打印出“10 of”,但是当我尝试输入 10 of Spades 的 10S
时,它只会打印出“Spades”。
希望这里有人可以给我一个解决方案或为我指明如何解决问题的正确方向:
Use a SWITCH statement to assign the result variable an initial value - the value of the card
Use a second SWITCH statement to concatenate to the result variable the card's suit"
这是代码:
import java.util.*;
public class CardConverter {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
//will hold string that user will input
String card, face, suit, result;
//getting input from user and telling them correct format
System.out.println("Please enter either the number or face value intial of a card followed by the initial of it's suit (ie. QH for Queen of Hearts)");
card = keyboard.nextLine();
//gets first value
face = card.substring(0);
//sets substring for 10 only
//substring for after all single digit/letter card faces
suit = card.substring(1);
//to print face and word of
switch (face)
{
case "10":
System.out.println("10 of ");
break;
case "2":
System.out.println("2 of ");
break;
case "3":
System.out.println("3 of ");
break;
case "4":
System.out.println("4 of ");
break;
case "5":
System.out.println("5 of ");
break;
case "6":
System.out.println("6 of ");
break;
case "7":
System.out.println("7 of ");
break;
case "8":
System.out.println("8 of ");
break;
case "9":
System.out.println("9 of ");
break;
case "J":
System.out.println("Jack of ");
break;
case "Q":
System.out.println("Queen of ");
break;
case "K":
System.out.println("King of ");
break;
case "A":
System.out.println("Ace of ");
break;
}
//to print out card suit
switch (suit)
{
case "H":
System.out.println("Hearts");
break;
case "C":
System.out.println("Clubs");
break;
case "S":
System.out.println("Spades");
break;
case "D":
System.out.println("Diamonds");
break;
}
}
}
最佳答案
你的问题从card.substring(0);
开始,它等于card
,因为子字符串是从字符串的开头开始的。也许您想要card.charAt(0);
?但这也是错误的,因为 "10S"
将包含三个字符,其中两个用于面值。
您需要专门处理三个字符的输入,或者更聪明地处理子字符串
-ing。
您知道花色始终是最后一个字符,因此请使用 charAt
的字符串长度。
int suitIndex = s.length() - 1;
String suit = ""+s.charAt(suitIndex);
String face = s.substring(0,suitIndex);
您还可以简化案例
case "J":
System.out.println("Jack of ");
break;
case "Q":
System.out.println("Queen of ");
break;
case "K":
System.out.println("King of ");
break;
case "A":
System.out.println("Ace of ");
break;
default:
System.out.println(face + " of "); // handle all the numbers
break;
关于java - 在扑克牌程序中使用 switch 语句 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39863240/
我正在尝试编写生成 4 手随机扑克牌的代码 (来源:wiseowl.co.uk) 显然,这些值应该是唯一的。这是我已经尝试过的代码,但是我无法使其工作。 Sub poker_is_hard() Dim
我正在尝试编写一个小程序来显示卡片包以及其他内容。 我有一个文件夹,里面有 52 张卡片图像。 如何为 Card 对象的每个实例分配图像? 我需要在对象内创建一个 52 图像数组,然后为每张卡分配正确
我试图让我的游戏中的扑克牌重叠,这样只能看到一张牌的前半部分,而另一半被下一张扑克牌覆盖。唯一应该完全可见的卡片是最后一张/最右边的卡片。 我将以下代码与 framelayout 和 relative
现在我知道了寻找顺子背后的基本逻辑,我假设其中包括一个伪 function is_straight(array $cards) { sort($cards); i
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 3 年前。 Improve this qu
我正在设计许多(希望是数千)玩家可以同时玩某些纸牌游戏的游戏网站。这副牌是标准的 52 张牌。每张牌都有花色和等级。牌将一直被洗牌、发牌、挑选、排序、打出。我的问题是,Card 应该是枚举、结构还是类
我遇到了一个真正令人困惑的错误,在过去的几个小时里我一直试图解决这个错误,但没有成功。我正在研究扑克实现。最初,我通过迭代循环生成卡片。 const suits = ['Heart', 'Spade'
我是一名优秀的程序员,十分优秀!