【问题标题】:java controle upper and lowercase in 2 Stringjava控制2个字符串中的大写和小写
【发布时间】:2013-05-01 13:49:30
【问题描述】:

我想检查字符串中的每个字符是否都是第二个字符的倒数。反向我的意思是大写和小写。

例如这些字符串:

  1. Ahh7h
  2. aHH7H

结果将是true

我写了这段代码,但结果总是false。为什么?

public boolean checkString(String serverString, String clientString) {
    if (serverString.length() != clientString.length())
        return false;
    else
        for (int i = 0; i < clientString.length(); i++) {
            if ((clientString.charAt(i) >= '0' && clientString.charAt(i) <= '9')
                    && (clientString.charAt(i) != serverString.charAt(i)))
                return false;
            else if (clientString.charAt(i) >= 'A'
                    && clientString.charAt(i) <= 'Z') {
                if ((int) clientString.charAt(i) != ((int) serverString
                        .charAt(i) + 32))
                    return false;
            } else if (clientString.charAt(i) >= 'a'
                    && clientString.charAt(i) <= 'z') {
                if ((int) clientString.charAt(i) != ((int) serverString
                        .charAt(i) - 32))
                    return false;
            }
        }
    return true;
}

【问题讨论】:

  • 对代码块使用一致且符合逻辑的缩进。代码的缩进是为了帮助人们理解程序流程!另请注意,永远不需要超过一个空白行。

标签: java uppercase lowercase


【解决方案1】:

您可以使用:How can I invert the case of a String in Java?“反转”一个字符串,然后使用 Strings .equals 方法来比较它们。

为了完整性,包含来自How can I invert the case of a String in Java? 的方法:

public static String reverseCase(String text)
{
    char[] chars = text.toCharArray();
    for (int i = 0; i < chars.length; i++)
    {
        char c = chars[i];
        if (Character.isUpperCase(c))
        {
            chars[i] = Character.toLowerCase(c);
        }
        else if (Character.isLowerCase(c))
        {
            chars[i] = Character.toUpperCase(c);
        }
    }
    return new String(chars);
}

【讨论】:

    【解决方案2】:

    您已经切换了+ 32- 32

    顺便说一句,使用以下方法要容易得多:

    Character.isDigit
    Character.isLowerCase
    Character.isUpperCase
    Character.toLowerCase
    Character.toUpperCase
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-14
      • 2020-09-13
      • 1970-01-01
      • 2019-11-22
      • 2016-07-14
      • 2011-12-11
      • 2020-09-16
      • 1970-01-01
      相关资源
      最近更新 更多