Джава.Использование компилятора drjava дает мне ошибку, чем никакой другой компилятор не дает мне - PullRequest
0 голосов
/ 06 декабря 2018
import java.io.*;
import java.util.*;

public class GentCanadian
{
  public static void main (String[] args) throws IOException
  {  
    BufferedReader objReader = new BufferedReader (new InputStreamReader (System.in));

    String lowerInput = ""; // declaring variable to work outside the loop

    while (!lowerInput.equals("quit"))
    {
      System.out.print ("Please enter a sentence to translate (Enter 'quit' to leave)");
      String input = objReader.readLine ();

      lowerInput = input.toLowerCase(); // any form of "quit" will make the loop exit

      Translate newSentence = new Translate(input);
      String output = newSentence.getOutput();

      System.out.println (output); // printing output
    }
  }
}


class Translate
{
  // declaring variables
  private String word = "";
  private String newWord = "";
  private String line = "";
  private String output = "";
  private char lastLetter;
  private char secondLastLetter;
  private int wordLength;

  Translate(String l)
  {
    line = l;
    Translation();
    getOutput(); // accessor method
  }


  private void Translation()
  {
    Scanner freader = new Scanner(line);
    StringBuffer newPhrase = new StringBuffer ("");

    while (freader.hasNext())
    {
      String word = freader.next();
      wordLength = word.length(); // gets the length of each word

      if (wordLength >= 5)
      {
        lastLetter = word.charAt(wordLength - 1);
        secondLastLetter = word.charAt(wordLength - 2);

        if (secondLastLetter == 'o' && lastLetter == 'r') // last two letters must be "OR"
        {
          String word2 = word.substring(0, wordLength - 2); // extracts all letters but the "OR"
          newWord = word2.concat("our"); // adds "OUR" to the end of the word
        }
        else
        {
          newWord = word; // keeps the same word
        }
      }
      else
      {
        newWord = word;
      }

      newPhrase.append(newWord);
      newPhrase.append(' '); // add a space
      output = newPhrase.toString(); // convert back to a string
    }
  }

  String getOutput()
  {
    return output; // returns the whole output
  }
}

Я получаю сообщение об ошибке на drJava, который является компилятором, который должен использовать мой класс, в котором я не получаю никакой другой компилятор для java.В строке 17, когда у меня есть оператор lowerInput = input.toLowerCase ();это дает мне ошибку, говоря, что я не могу присвоить значение lowerInput, потому что оно является неизменным и уже получило значение.Если кто-нибудь знает, как я могу исправить эту ошибку, пожалуйста, ответьте, как мне нужно, чтобы выяснить это.

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