试图改变Java类的一部分

时间:2015-02-08 22:15:32

标签: java

我正在尝试更改类(Character)的一部分,因此我可以将结尾更改为.isDigit。就像我可以将类型测试器改为我想要的但我不知道如何做到这一点。

 public static boolean testText (String password, int length,typeTester) {
    boolean test = false;
    for (int count = 0; count <= (length-1); count++){
      char resultConverted = password.charAt(count);
      if (Character.typeTest(resultConverted))
        test = true;
    }
    return test; 

  }

编辑: 所以现在有办法做得更好,然后做这样的事情来分析一个词:

  public static boolean testUpperCase (String password, int length) {
    boolean upperCase = false;
    for (int count = 0; count <= (length-1); count++){
      char resultConverted = password.charAt(count);
      if (Character.isUpperCase(resultConverted))
        upperCase = true;
    }

    return upperCase;
  }
  public static boolean testLowerCase (String word, int length) {
    boolean lowerCase = false;
    for (int count = 0; count <= (length-1); count++){
      char resultConverted = word.charAt(count);
      if (Character.isLowerCase(resultConverted))
        lowerCase = true;
    }
    return lowerCase;

  }

这只是一个问题,找到一个比我迄今为止所做的更优雅的替代方案。

2 个答案:

答案 0 :(得分:1)

以下是testUpperCase的更优雅的变体:

boolean testUpperCase(String password) {
  for(char c : password.toCharArray()) {
    if(Character.isUpperCase(c)) {
      return true;
    }
  }
  return false;
}

答案 1 :(得分:0)

如果String不等于转换为小写的String意味着应该有一些大写字符。

/* Test if there are any uppercase character in the string */
boolean testUpperCase(String password) {
    return !password.equals(password.toLowerCase());
}

同样测试String是否包含小写字符:

/* Test if there are any lowercase character in the string */
boolean testLowerCase(String password) {
    return !password.equals(password.toUpperCase());
}