gpt4 book ai didi

java - 在不使用内置函数的情况下切换字符串大小写时转换为 char

转载 作者:行者123 更新时间:2023-11-30 03:15:18 25 4
gpt4 key购买 nike

这是我编写的用于转换字符串大小写的程序。但是,我收到编译错误,正如我在以下程序中评论的那样。您能否根据我的代码向我解释一下我做错了什么?

public class Togg 
{
public static void main(String args[])
{
String small="nayanjindalrocks";
char a[]=new char[small.length()];
int i;
for(i=0;i<a.length;i++)
{
a[i]=small.charAt(i);
if(a[i]>='A'&&a[i]<='Z')
{
a[i]=a[i]+32; // Type mismatch: cannot convert from int to char (Add cast to char)
}
else
{
a[i]=a[i]-32; // Type mismatch: cannot convert from int to char (Add cast to char)
}
}
String news=new String(a);
System.out.print(news);
}
}

最佳答案

正如编译器所说,您正在尝试将 int 值(例如 a[i] + 32 的结果)分配给 char 变量 (a[i])。这里“令人惊讶”的部分是 a[i] + 32 的结果是一个 char code>...但如果您不查看 JLS 15.18.2 ,它会为数字类型指定 + 运算符,并且指定首先应用 binary numeric promotion ,这只是一个惊喜。在这种情况下,a[i] 在执行加法之前会隐式提升为 int

选项:

  • 添加 Actor 阵容,例如

    a[i] = (char) (a[i] + 32);
  • 使用+=-=隐式执行转换

    a[i] += 32;

关于java - 在不使用内置函数的情况下切换字符串大小写时转换为 char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32780043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com