java - Java 中的 char 算术

标签 java

我编写了下面的代码,将小写转换为大写,将大写转换为小写,但它无法正常运行。此代码触发以下错误:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    Type mismatch: cannot convert from int to char
    Type mismatch: cannot convert from int to char
    at learn.Example.main(Example.java:20)
<小时/>
public class Example 
{
    public static void main(String args[])
    throws java.io.IOException
    {
        char ch;

        System.out.println("Enter an alphabet only: ");

        do
        {
            ch = (char) System.in.read();

            if (ch>='a' & ch <= 'z')
            {
                ch= ch-32;
                System.out.println(ch);
            }
            if (ch >='A' & ch <= 'Z')
            {
                ch = ch + 32;
                System.out.println(ch);
            }
        }
        while (ch != '.');
    }
}

最佳答案

改变

ch = ch - 32;

ch = (char) (ch - 32);

因为该算术运算符的结果是 int 并且必须显式转换为 char

同样改变

ch = ch + 32;

ch = (char) (ch + 32);

关于java - Java 中的 char 算术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34411278/

相关文章:

java - 为 GWT 服务设置入口点时出现问题

java - JSF 中文件浏览的替代方案是什么?

java - @PreUpdate 更新时不保存父对象

java - 如何在类型查询中制定 JOIN?

java - 从 REST 访问请求对象

java - 迭代多维 ArrayList

java - Spring MVC PATCH方法: partial updates

java - 使用时间延迟将 Swing 组件中字符串数组的内容显示为迭代。 JAVA

java - 使用 Swing 从本地目录获取图像?

java - 使用 do-while 循环将用户输入添加到 ArrayList