StringIndexOutOfBounds в Java

У меня есть две точные копии кода, за исключением того, что у одного есть «<» в циклах for, в то время как у другого есть «<=». Может кто-нибудь объяснить, почему я получаю исключение индекса за пределами границ, когда я использую «<=», но тогда он отлично работает с «<»

Код ошибки:

for(int i = 0; i <= str.length(); i++) {
      int count = 0;
      char currentChar = str.charAt(i);
      for(int j = 0; j <= str.length(); j++) {
        if (currentChar == str.charAt(j) ) {
          count++;


Рабочий код:

for(int i = 0; i < str.length(); i++) {
      int count = 0;
      char currentChar = str.charAt(i);
      for(int j = 0; j < str.length(); j++) {
        if (currentChar == str.charAt(j) ) {
          count++;


Если я не использую <=, как он будет сравнивать последний символ в строке?

Ответы на вопрос(4)

Ваш ответ на вопрос