【问题标题】:JAVA - How can I print my desired card game output?JAVA - 如何打印我想要的纸牌游戏输出?
【发布时间】:2021-12-11 22:52:53
【问题描述】:

我被要求编写一个从 A 到 Z 的纸牌游戏程序,该程序打印用户可能想要的所需输入数量。程序需要删除,例如卡片是:1 A -> 2 B -> 3 C。如果用户输入-3 C,意味着删除3 C,程序需要输出2 A -> 2 B。

SAMPLE INPUT
Cards to play: 5  
1 A
2 B 
3 C 
1 A
-3 C

Output
1 A 
2 B 
3 C
1 A
-3 C

cards left: 
2 A -> 2 B

这是我到目前为止所做的:

Scanner sc = new Scanner(System.in);  
System.out.print("Input card: ");        
String[] string = new String [sc.nextInt()];      
sc.nextLine();
for (int i = 0; i < string.length; i++) 
{  
    string[i] = sc.nextLine(); 
    String[] splitString = string[i].split(" "); 
    String part1 = string[0];
    String part2 = string[1];
    int X = Integer.parseInt(part1);
    char y = part2.charAt(0);
    int Y = y - 'A';
    string[Y] += X;
}
System.out.println("Cards left: ");
for(String str: string) 
{  
    System.out.println(str + " " i + 'A');
}

我认为我需要获取 0 索引值,以便进行转换(字符串到 int,字符串到 char 到 int)(我认为这也不起作用)。似乎它只能读取 1 个输入,我似乎无法打印出我想要的输出。急需帮助

【问题讨论】:

  • 输出应该是 1A->2B 还是 2A->2B ??
  • 2 A -> 2B 因为如果用户不想删除它们,应该添加相同的卡片

标签: java iteration


【解决方案1】:

在我看来,您对不同的对象感到困惑。

你应该这样做:

String[] splitString = string[i].split(" "); 
String part1 = splitString[0];
String part2 = splitString[1];

专业提示:使用有意义的变量名以防止将来出现此类错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    相关资源
    最近更新 更多