【问题标题】:Better way to invert cases of characters in a string in Java在Java中反转字符串中字符大小写的更好方法
【发布时间】:2021-01-18 13:34:50
【问题描述】:

作为一个刚开始接触 Java 编程的新手 Java 程序员,我在试图找到解决这个问题的方法时已经筋疲力尽了。我目前正在学习的一门课程要求我创建一个 Java 类,该类具有一种“反向”方法,该方法返回字符串的新版本 当前字符串的大小写反转(即,小写到大写 和大写到小写)用于在给定条件中指定的字母字符。假设我要反转“abc, XYZ; 123。”使用 reverse("bcdxyz@3210."),它必须返回 "aBC, xyz; 123."。 (PS:该类忽略数字和特殊字符,变量“myString”是“abc,XYZ;123。”的位置。)。到目前为止,我只设法返回“aBC, XYZ; 123”。使用下面的代码。我在这里遗漏了什么吗?

public String reverse(String arg) {
    // TODO Implement method 
    String arg_no_sym = arg.replaceAll("[^a-zA-Z0-9]","");
    String arg_perfect = arg_no_sym.replaceAll("\\d","");
    
    if (myString != null) {
        char[] arrayOfReplaceChars = arg_perfect.toCharArray();
        char[] arrayOfmyString = myString.toCharArray();
        for (int i = 0; i < arg_perfect.length(); i++) {
            myString = myString.replace(String.valueOf((arrayOfReplaceChars[i])), String.valueOf((arrayOfReplaceChars[i])).toUpperCase()); 
        }
        return myString;
    }
    else {
        return "";
    }
}

【问题讨论】:

  • 什么是myString
  • 变量所在的“abc, XYZ; 123。”去。
  • 您不需要将字符串转换为数组:例如,您可以使用arg_perfect.charAt(i)。您还可以将您的正则表达式组合成"[^a-zA-Z]"。您遇到的问题是从arg_perfect 中替换字符:目前,它们都是小写的;您应该确保在进行替换时,同时替换小写和大写字符。想想像"aA"这样的特殊情况,应该变成"Aa"
  • @Anfieldin21thCentury 除非 myString 是全局变量或实例变量,否则您的代码将不会运行,因为该变量未定义,因此请提供完整代码以获取最小的工作示例:)
  • @BillyBrown 是的,这就是我需要的。但是如何同时替换小写和大写字符是我的问题。

标签: java arrays string


【解决方案1】:

如何使用isUpperCase()isLowerCase()方法检查字母的大小写,然后使用toUpperCase()toLowerCase()更改它们的大小写?

【讨论】:

  • 注意,这些方法是staticjava.lang.Character类中
猜你喜欢
  • 2010-12-16
  • 2010-12-04
  • 2016-05-03
  • 2011-01-16
  • 1970-01-01
  • 1970-01-01
  • 2013-04-14
  • 2021-02-13
  • 1970-01-01
相关资源
最近更新 更多