我正在尝试计算 java 字符串中出现的字符数。
例如:
给定扑克手牌 6s/3d/2H/13c/Ad
/ 字符出现了多少次?= 4
用户可以输入不同数量的牌变量,因此硬编码检查出现的方法是行不通的。
分隔符可以是以下任何一种: - / 空格(一只手只允许使用一种分隔符类型)。所以我需要能够检查是否有任何一个分隔符出现了 4 次,否则给出了不正确的格式。
这是一些java代码,可以更好地了解我正在尝试做的事情:
String hand = "6s/1c/2H/13c/Ad";
System.out.println("Original hand: " + hand);
// split the hand string into individual cards
String[] cards = hand.split(hand);
// Checking for separators
// Need to check for the correct number of separators
if(hand.contains("/")){
cards = hand.split("/");
} else if (hand.contains("-")){
cards = hand.split("-");
} else if (hand.contains(" ")){
cards = hand.split(" ");
} else {
System.out.println("Incorrect format!");
}
任何帮助都会很棒!
这也是一个学校项目/家庭作业。
编辑 1------------------------------------------------ --------
好的,这是您提出建议后的代码
String hand = "6s 1c/2H-13c Ad";
System.out.println("Original hand: " + hand);
// split the hand string into individual cards
String[] cards = hand.split("[(//\\-\\s)]");
if (cards.length != 5) {
System.out.println("Incorrect format!");
} else {
for (String card : cards) {
System.out.println(card);
}
}
上面给定的手牌格式不正确,因为用户只能对给定的手牌使用一种类型的分隔符。例如:
- 6s/1c/2H/13c/Ad - 正确
- 6s-1c-2H-13c-Ad - 正确
- 6s 1c 2H 13c Ad - 正确
如何确保用户只使用一种分隔符?
为到目前为止的答案干杯!
编辑 2 ------------------------------------------
因此,使用嵌套的 if 语句,我的代码现在看起来像这样:
String hand = "6s/1c/2H/13c/Ad";
System.out.println("Original hand: " + hand);
// split the hand string into individual cards
if(hand.contains("/")){
String[] cards = hand.split("/");
if(cards.length != 5){
System.out.println("Incorrect format! 1");
} else {
for (String card : cards) {
System.out.println(card);
}
}
} else if(hand.contains("-")){
String[] cards = hand.split("-");
if(cards.length != 5){
System.out.println("Incorrect format! 2");
} else {
for (String card : cards) {
System.out.println(card);
}
}
} else if(hand.contains(" ")){
String[] cards = hand.split(" ");
if(cards.length != 5){
System.out.println("Incorrect format! 3");
} else {
for (String card : cards) {
System.out.println(card);
}
}
} else {
System.out.println("Incorrect format! 4");
}
这种方式按预期工作,但很丑!
任何建议都会非常高兴。