我想将大写字母转换为小写字母,反之亦然

时间:2019-05-22 11:29:03

标签: java

  1. char ch = 'A';

  2. ch += 32;. //This works fine

  3. ch = ch + 32; //this doesn't work

尽管第2行代表相同的操作,但为什么第2行却不起作用?

1 个答案:

答案 0 :(得分:4)

为什么不使用Character类静态方法?

https://docs.oracle.com/javase/7/docs/api/java/lang/Character.html

Character.toUpperCase(ch)

尽管要回答您的问题,但是java要求您在赋值期间降低精度时强制转换基元,因此,在righand站点上具有32bit int,在左侧16bit则需要显式进行强制转换。因此,当右侧为int时,您需要进行强制转换。如果强制转换为char,则代码可以正常工作。仍然只是使用角色类

    long l = 34; //this is fine     
    int i = 2L; //compile error, you loose precision in that assigment

还要检查Why are we allowed to assign char to a int in java?