Программа, которая читает аргументы и преобразует все буквы заглавными буквами без использования toUpperCase () - PullRequest
0 голосов
/ 18 января 2019

Итак, я пытаюсь создать программу, которая читает аргументы и преобразует все буквы заглавными буквами без использования 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 голосов
/ 18 января 2019

Метод 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;
}
0 голосов
/ 18 января 2019

args[i].charAt(y) возвращает символ, а не переменную, поэтому вы не можете присвоить ему значение

Что вам нужно сделать, это создать новую строку, добавить к ней заглавные буквы и распечатать ее:

    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);
    }
...