Ошибка преобразования верхнего и нижнего регистров - PullRequest
0 голосов
/ 29 июня 2018

Ниже приведен код для преобразования верхнего регистра в нижний регистр и наоборот?

  if(s1.charAt(i)>=97 && s1.charAt(i)<=122){
     s1.charAt(i)=s1.charAt(i)-32;
  }
  else if(s1.charAt(i)>=65 && s1.charAt(i)<=90){
      s1.charAt(i)=s1.charAt(i)+32;
  }

Пожалуйста, обратитесь выше и помогите, в чем проблема с этой программой?

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

У вас проблема здесь:

 s1.charAt(i) = s1.charAt(i) - 32;
 ------------   -----------------
      1                2

Здесь есть две проблемы:

  • Во-первых, вторая часть возвращает int, и вы пытаетесь присвоить его символу
  • Во-вторых, вы не можете сделать такое назначение

Вместо этого я бы использовал:

String s1 = "AbCd";
//create a char array
char[] array = s1.toCharArray();
//loop over this array, and work just with it
for (int i = 0; i < array.length; i++) {
    if (array[i] >= 'a' && array[i] <= 'z') {
        array[i] = (char) (s1.charAt(i) - 32);//<--------------------------note this
    } else if (s1.charAt(i) >= 'A' && s1.charAt(i) <= 'Z') {
        array[i] = (char) (s1.charAt(i) + 32);
    }
}

//when you end, convert that array to the String
s1 = String.valueOf(array);//output of AbCd is aBcD

Кроме того, я хотел бы использовать:

String result = "";
for (int i = 0; i < array.length; i++) {
    if (Character.isLowerCase(array[i])) {
        result += Character.toUpperCase(s1.charAt(i));
    } else {
        result += Character.toLowerCase(s1.charAt(i));
    }
}
0 голосов
/ 29 июня 2018

Ваш код даже не компилируется, вы не можете сделать s1.charAt(i) = 'x', потому что s1.charAt не является переменной, вы не можете просто присвоить ей что-либо.

Чтобы заменить символ на индекс в строке, выполните:

new StringBuilder(yourString).setCharAt(characterIndex, 'x')

Я предлагаю использовать некоторые IDE, такие как Intellij или Eclipse, они сообщат вам об ошибках компиляции, подобных этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...