Java阅读字符

时间:2015-12-11 00:40:31

标签: java character

到目前为止我很熟悉toLowerCase()和toUpperCase()。让我们说我的问题与每个角色相反,从上到下,从下到上。实施例

STRing - > string,java如何知道字符是否大写?

3 个答案:

答案 0 :(得分:2)

有几种方法可以确定Java中的字符是大写还是小写。 Java确实提供了一组可用于执行测试的实用程序方法。请参阅Character.isUpperCase(char)Character.isLowerCase(char)

Java中的字符是ASCII。每个字母都用数字表示,因此我们可以进行算术比较,看看字母是否在一个范围内。这意味着您也可以自己进行测试:

public boolean isLowerCase(char c) {
    return c <= 'z' &&  c >= 'a';
}

public boolean isUpperCase(char c) {
    return c <= 'Z' &&  c >= 'A';
}

我们可以将这些方法与String.charAt:

结合使用
public Result countCaseWithCharAt(String sentence) {
    Result result = new Result();

    for(int i = 0; i < sentence.length(); i++  ) {
        if(Character.isLowerCase(sentence.charAt(i))) {
            result.lowerCaseCount++;
        } else if(Character.isUpperCase(sentence.charAt(i))){
            result.upperCaseCount++;
        }
    }
    return result;
}

static class Result {
    public int lowerCaseCount = 0;
    public int upperCaseCount = 0;
}

但是,由于您尝试切换字符,因此您可能希望使用字符串中除charAt之外的其他方法。您可以使用String.toCharArray()来生成String中每个字符的中间结构。

public Result countCaseWithCharAtAndArray(String sentence) {
    char[] characters = sentence.toCharArray();
    Result result = new Result();
    for(char current : characters) {
        if(Character.isLowerCase(current)) {
            result.lowerCaseCount++;
        } else if(Character.isUpperCase(current)){
            result.upperCaseCount++;
        }
    }
    return result;
}

在关于我们迭代字符的中间结构的示例中。由于我们创建了这个结构,因此我们不必为每个字符执行字符串提取,并且我们不会使用这些愚蠢的整数进行迭代。

我知道你提到你知道toUpperCase和toLowerCase但我想我也会提到你可以再次自己执行这些转换。小写&#39; a&#39; ASCII表中的值大于大写&#39; A&#39;。所以我们做了类似的事情:'a' - 'A'我们会得到两者之间的区别。这意味着我们可以通过从字母中减去该值来大写字母。通过执行相反的lowerCaseCharacter + ('a' - 'A'),{/ 1}}或小写您的角色。我不认为你应该这样做,但你可以。

答案 1 :(得分:0)

你能做的是......

if (Character.toUpperCase(c) == c){
    c = Character.toLowerCase(c);
} else {
    c = Character.toUpperCase(c);
}

答案 2 :(得分:0)

嗯......实现这一目标的最简单方法是执行以下操作:

  1. 检查每个字母的大小写
  2. 根据每个案例,使用问题中描述的两种方法之一:

    toLowerCase() toUpperCase()

  3. 根据角色的情况而定。

    所以,让我们说我们遇到一个大写字符。我们想做什么?我们想把它变成小写。我们可以在if语句中说:

    if(we come across an upper case letter)
    Make it a lowercase letter!
    

    现在,我们可以说我们遇到了一个小写字符。我们想做什么?我们想让它成功。我们可以在if语句中说:

    if(we come across an lower case letter)
    Make it an uppercase letter!
    

    所以,现在我们得到了逻辑。 在编程中,在你做之前了解你将要做什么非常重要。那么,我们如何在实际的java代码中表示这两个if语句?

    嗯,这是第一个,uppercase -> lowercase

    if (Character.isUpperCase(a)){ //This means, it is already uppercase
    a = Character.toLowerCase(a); //Lets make it lowercase!
    

    这是第二个! lowercase -> uppercase

    if (Character.isLowerCase(a)){ //This means, it is already lowercase
        a = Character.toLowerCase(a); //Lets make it lowercase!
    

    这就是你在字符串中迭代的地方,而a是字符串的字符!

    如果这个有用,请标记为最佳答案(在“按钮”下方勾选标记)。如果您有任何问题,请随时提出,我很乐意提供帮助。