【问题标题】:How to convert every other character to upper case in a string [closed]如何将字符串中的所有其他字符转换为大写[关闭]
【发布时间】:2018-05-28 06:03:31
【问题描述】:

我目前有一个作业,我们将整个(瑞典语)字母表以小写形式作为字符串,我们应该将所有其他字符转换为大写。这就是我现在的位置:

public static void main(String[] args) {
    String alphabet = "abcdefghijklmnopqrstuvwxyzåäö";
    System.out.println(alphabet);
    for (int i = 0; i < 29; i = i + 2) {
        char result = alphabet.charAt(i);
        alphabet.toUpperCase(result);
    }
    System.out.println(alphabet);
}

现在的问题是 alphabet.toUpperCase(result); 给了我一个错误,我无法将 char 转换为语言环境。我该如何解决这个问题?

【问题讨论】:

  • 嗯,你看过String.toUpperCase的文档了吗?是否需要char 参数?如果确实如此,鉴于您没有在任何地方使用结果,您希望调用该方法做什么?
  • JavaDoc 是你的朋友。
  • 如果您想将特定的字符 转换为大写,Character 类将是一个不错的起点。 docs.oracle.com/javase/7/docs/api/java/lang/…

标签: java type-conversion


【解决方案1】:

如果你想得到一个char的大写,你应该使用Character.toUpperCase(c),而不是String的toUpperCase。

所以,我想你可能正在寻找这样的东西:

public static void main(String[] args) {
    String alphabet = "abcdefghijklmnopqrstuvwxyzåäö";
    System.out.println(alphabet);

    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < alphabet.length(); i++) {
        char c = alphabet.charAt(i);
        sb.append(i % 2 == 0 ? Character.toUpperCase(c) : c);
    }
    String result = sb.toString();
    System.out.println(result);
}

输出:

abcdefghijklmnopqrstuvwxyzåäö

AbCdEfGhIjKlMnOpQrStUvWxYzÅäÖ

由于字符串是不可变的,你必须创建一个新的字符串来获得你想要的。一种有效的方法是使用 StringBuilder。

编辑:

不使用 StringBuilder 的另一种方法可能是更直观的方法是将字符串转换为字符数组,这使其可变。最后,您只需将其转换回字符串。结果如下所示:

public static void main(String[] args) {
    String alphabet = "abcdefghijklmnopqrstuvwxyzåäö";
    System.out.println(alphabet);

    char[] chars = alphabet.toCharArray();
    for (int i = 0; i < alphabet.length(); i+=2) {
        chars[i] = Character.toUpperCase(chars[i]);
    }
    String result = new String(chars);
    System.out.println(result);
}

【讨论】:

  • 问题是他试图用 char 对字符串执行 toUpperCase ,但这不是该方法的工作方式。我相信我在回答的第一行中以某种方式说出了这一点。
  • 这行得通,谢谢!我不确定我的老师是否希望我使用 StringBuilder,但必须这样做。
  • 对不起,忽略了它,因为你的例子和她的有很大不同......
  • 我添加了一个不使用可能更直观的 StringBuilder 的示例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-17
  • 1970-01-01
  • 1970-01-01
  • 2018-05-02
  • 2021-02-22
  • 1970-01-01
相关资源
最近更新 更多