因此,我正在尝试制作一个程序,该程序读取args并将所有字母转换为大写字母,而不使用toUpperCase()。 我要处理单个字母的唯一方法是使用“-'a'+'A'”
这是我到目前为止所做的
import java.util.Scanner;
public class ArgsTest{
public static void main(String args[]){
for(int i = 0; i<args.length; i++){
for(int y=0; y<args[i].length(); y++){
if ('a' <= args[i].charAt(y) && args[i].charAt(y) <= 'z') {
args[i].charAt(y) = (char)(args[i].charAt(y) - 'a' + 'A');}
}
}
}
}
我不明白自己在做什么,错误提示:
ArgsTest.java:9: error: unexpected type
args[i].charAt(y) = (char)(args[i].charAt(y) - 'a' + 'A');
^
required: variable
found: value
1 error
答案 0 :(得分:2)
args[i].charAt(y)
返回的字符不是变量,因此您不能为其分配值
您应该做的是创建一个新的String并将其添加为大写字符并打印出来:
for(int i = 0; i<args.length; i++){
String result = "";
for(int y=0; y<args[i].length(); y++){
if ('a' <= args[i].charAt(y) && args[i].charAt(y) <= 'z') {
result += (char)(args[i].charAt(y) - 'a' + 'A');}
}
System.out.println(result);
}
答案 1 :(得分:0)
charAt()
方法返回的字符不是变量。因此,您无法为字符分配值。在Java中,我们只能将值分配给变量,而不能分配给值。
for(int i = 0; i<args.length; i++){
String s = "";
for(int y=0; y<args[i].length(); y++){
if ('a' <= args[i].charAt(y) && args[i].charAt(y) <= 'z') {
s+=(char)(args[i].charAt(y) - 'a' + 'A');
}
}
args[i]=s;
}