【问题标题】:Simple Java Boolean Not Working简单的 Java 布尔值不起作用
【发布时间】:2015-10-12 15:54:17
【问题描述】:

我有以下通过字符串的程序。如果有空格,则不打印任何内容。如果char是大写,打印0。如果char是小写,打印1。

import java.util.*;

public class Blah {
    public static void main (String args[]){
        Scanner input = new Scanner(System.in);
        String text = input.next();

        int i;
        for (i = 0; i < text.length(); i++) {
            if (text.charAt(i).equals(" "))
                System.out.print(" ");
            else if (Character.isUppercase(text.charAt(i)))
                System.out.print("0");
            else {
                System.out.print("1");
            }
        }

    }
}

我收到以下 2 个错误:

char cannot be deferenced
cannot fine symbol: method.isUppercase(char)

请帮忙。谢谢你。

【问题讨论】:

    标签: java char boolean equals


    【解决方案1】:
    1. text.charAt(i) 返回一个原始类型char,它没有equals 方法。要与参考字符进行比较,请使用相等运算符==。引用字符也必须用单引号括起来,而不是双引号。

    2. isUppercase必须改为isUpperCase

      for (i = 0; i < text.length(); i++) {
          if (text.charAt(i) == ' ')
              System.out.print(" ");
          else if (Character.isUpperCase(text.charAt(i)))
              System.out.print("0");
          else {
              System.out.print("1");
          }
      }
      

    【讨论】:

    • 谢谢它现在运行良好。但是有一个问题:如果字符串看起来像这样:aBc DEf G。程序不会超过第一个空格。所以它只输出 101 而不是 101 001 0 @manouti
    • @OneMoreQuestion 您需要使用input.nextLine() 而不是input.next() 来阅读整行。
    • @OneMoreQuestion 如果你也想变得很棒,你需要自己想办法解决这些问题!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-22
    • 2019-01-26
    • 2013-08-12
    • 2013-07-03
    • 2011-11-29
    • 2016-02-20
    • 1970-01-01
    相关资源
    最近更新 更多