【问题标题】:How to remove the first character of every string in an array in java如何在java中删除数组中每个字符串的第一个字符
【发布时间】:2018-10-21 03:03:07
【问题描述】:

对于编码任务,我们需要创建一个纸牌游戏。对于游戏的编码部分,我们决定制作一个包含所有卡片的字符串数组。在这个数组中,它告诉你牌的花色和价值。我们还想做的是能够删除识别西装的字符,以便我们可以将其从字符串转换为 int 以在最后加分。我已经尝试了很多方法来获得我想要的拥有一组卡片,这些卡片可以稍后转换为 int,从使用 intrstream 填充 1-52,然后根据范围 n-n =spades 等分配值,尝试学习如何使用枚举,因为我们还没有了解这些,并且通过查看其他人的代码来做类似的事情。

TLDR:我试图让每个循环遍历每个字符串并删除第一个字符。没用。

String[] deck =
  {"DA, D2, D3, D4, D5, D6, D7, D8, D9, D10, DJ, DQ, DK, SA, S2, S3, S4, S5, S6, S7, S8, S9, S10, SJ, SQ, SK, HA, H2, H3, H4, H5, H6, H7, H8, H9, H10, HJ, HQ, HK, CA, C2, C3, C4, C5, C6, C7, C8, C9, C10, CJ, CQ, CK"};
String[] points = new String[deck.length];
for (int i = 0;i<deck.length;i++ ) {
    points[i] = deck[i].substring(0);
  }
    System.out.println(Arrays.toString(points));

【问题讨论】:

  • 具体是如何不起作用的。您看到了什么以及预期什么?
  • 当我输入我对它的作用而不是预期的反应时,我意识到我的错误。此数组中的每个元素都在一个字符串中,而不是字符串列表。如果将其更改为实际的字符串数组,则它可以工作。您的评论帮助我解决了问题,哈哈,谢谢。

标签: java arrays string character


【解决方案1】:

可能不是完整的答案,但首先您要定义一个元素数组。我会推荐jshell(使用 jdk9+),它是 java REPL,可以使用 java 代码并查看它的反应。

jshell> String[] deck = {"apple, banana, cat"}
deck ==> String[1] { "apple, banana, cat" }

您想要分隔元素,然后看到大小为 3。

jshell> String[] deck = {"apple", "banana", "cat"}
deck ==> String[3] {"apple", "banana", "cat"}

那么您应该可以.substring(1) 获得忽略第一个字符的卡点并稍后将其转换为整数。

例子:

public static void main(String[] args) {
    String[] deck = {
            "DA",
            "D2",
            "D3",
            "D4",
            "D5",
            "D6",
            "D7",
            "D8",
            "D9",
            "D10",
            "DJ",
            "DQ",
            "DK",
            "SA",
            "S2",
            "S3",
            "S4",
            "S5",
            "S6",
            "S7",
            "S8",
            "S9",
            "S10",
            "SJ",
            "SQ",
            "SK",
            "HA",
            "H2",
            "H3",
            "H4",
            "H5",
            "H6",
            "H7",
            "H8",
            "H9",
            "H10",
            "HJ",
            "HQ",
            "HK",
            "CA",
            "C2",
            "C3",
            "C4",
            "C5",
            "C6",
            "C7",
            "C8",
            "C9",
            "C10",
            "CJ",
            "CQ",
            "CK"
    };

    String[] points = new String[deck.length];

    for (int i = 0; i < deck.length; i++) {
        points[i] = deck[i].substring(1);
    }

    System.out.println(Arrays.toString(points));
}

输出:

[A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K, A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K, A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K, A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K]

【讨论】:

  • 是的,在思考了哪里出了问题之后,我意识到我将所有东西都作为一个元素的错误。感谢您的回复。
猜你喜欢
  • 1970-01-01
  • 2011-05-29
  • 2015-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-23
相关资源
最近更新 更多