Improvements on my parenthesis realigning Java code

This is my code for an assignment. The task is to take a user input in form of a sequence of parenthesis’ followed by an E to mark its end and determine whether it is a correct sequence (as an example (()())E is corect, )(()((E is incorrect) and if incorrect determine how many parenthesis at the start you need to remove and how many to add at the end for it to be correct.

The code works. But it’s super long and I wondered if there were any improvements I could do on it. Any help is greatly appreciated.

public class Main {
  
  public static String enter(){     
    String enter = "";
    char nextValue ='A';
    while (nextValue!='E'){
      nextValue = In.readChar();
      enter += nextValue;
    }
    return enter;
  }
/*User Input. I know this could be done with ArrayList or scanner, but we haven't had these yet in classes. 
So I did it by converting the user inputs into a string, 
then storing that string into an array in main with "char ()sequence = enter.toCharArray();"*/


  public static char() removeParenthesisPairs(char() a){
    for(int i=0; i<a.length; i++){
      if(a(i)=='('){
        a(i)='F';
        outerloop:
        for(int j=i+1; j<a.length;j++){
          if(a(j)==')'){
            a(j)='F';
            break outerloop;
          }
          if(j==a.length-1){
            a(i)='(';
          }
        }
      }
    }
    return a;
  }
/*I remove all the correct pairs from the sequence. I look for a ( and turn it into an F (to signal it's removed) 
and search the rest of the sequence for a ) and turn that into an F too. If there is no ) I turn the F back into (.
This part I really don't like, it looks super clunky. Also I have read that the "break outerloop"
thing I'm using here is bad practice, but I havent figured out any other way to accomplish the same result.*/
  

  
  public static boolean checkIfCorrect(char() a){
    for(int i=0;i<a.length-1;i++){
      if(a(i)!='F'){
        return false;
      }
    }
    return true;
  }
/* I check if the sequence is correct. If there are only F left in the array, 
that means all entries were able to form pairs of () and the original sequence was correctly parenthesised.*/
  
  
   public static int subtract(char() a){
    int count = 0;
    for(int i=0; i<a.length;i++){
      if(a(i)==')'){
        count += 1;
      }
    }
    return  count;
  }
// Check how many ) have to be subtracted at the beginning of the sequence.
  

  public static int add(char() a){
    int count = 0;
    for(int i=0; i<a.length;i++){
      if(a(i)=='('){
        count += 1;
      }
    }
    return count;
  }
/*Check how many ( are still left in the sequence and need a ) added to form a pair.
I am kinda repeating myself here in the subtract() and add() methods, they are essentially doing
the same thing. The only way I have figured out for a method to return two values is by making
a class. But it seems even more convoluted to add new classes or is it preferable to this solution?*/
  
  public static void main(String() args) {
    String enter= enter();
    char ()sequence = enter.toCharArray();
    removeParenthesisPairs(sequence);
    boolean correct = checkIfCorrect(sequence);
    int additional = add(sequence);
    int removed = subtract(sequence);
    Out.println(correct);
    Out.println("removed = " + removed + " und additional = " + additional);
  }
/*I'm required by the assignment to have the boolean correct, int additional and int removed like this. 
So I can't just do "Out.println("removed = " + subtract(sequence)+ " und additional = " + add(sequence));"*/
}