无需使用toUpperCase()即可读取args并将所有字母转换为大写字母的程序

时间:2019-01-18 09:58:55

标签: java uppercase args

因此,我正在尝试制作一个程序,该程序读取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

2 个答案:

答案 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;
}