Не могу найти символ - но переменная есть - PullRequest
0 голосов
/ 19 октября 2018

Я довольно опытный в Java, но недавно я написал эту программу для сортировки строк (пожалуйста, не обращайте внимания на эффективность и тому подобное).Но я получаю эту странную ошибку.

Это код:

import java.io.*;
class Prog3
{
  public static void main(String[] args) throws IOException
  {
    BufferedReader br = new BufferedReader(new 
    InputStreamReader(System.in));
    System.out.print("Enter a String: ");
    String s = br.readLine().toUpperCase();
    String st = "", finalStr = "";
    int count = 1, arI = 0;
    char t = s.charAt(s.length()-1);
    if(!(t=='.'||t=='?'||t=='!'))
    {
      System.out.print("Invalid Input!");
      System.exit(0);
    }
    for(int i = 0; i < s.length(); i++)
    {
      char ch = s.charAt(i);
      if(ch==' ')
      {
        count++;
      }
    }
    String[] ar = new String[count];
    for (int i = 0; i < s.length(); i++)
    {
      char ch = s.charAt(i);
      if(ch!=' '&&ch!='.'&&ch!='?'&&ch!='!')
      {
        st += ch;
      }
      else
      {
        ar[arI++] = st;
        st = " ";
      }
    }
    for ( int i = 0; i < ar.length-1; i++);
    {
      for ( int j = 0; j < ar.length-1-i; j++);
      {
        if (ar[j].compareTo(ar[j+1])>0)
        {
          String temp = ar[j];
          ar[j] = ar[j+1];
          ar[j+1] = temp;
        }
      }
      finalStr = ar[ar.length-1-i] + " " + finalStr;
    }
    System.out.println("Length: " + count);
    System.out.println("Rearranged Sentence:\n" + ar[0] + " " + finalStr);
  }
}

Но я все еще получаю эту ошибку «не могу найти символ» в строке 41 и так далее:

Prog3.java:41: error: cannot find symbol
      for ( int j = 0; j < ar.length-1-i; j++);
                                       ^
  symbol:   variable i
  location: class Prog3
Prog3.java:43: error: cannot find symbol
        if (ar[j].compareTo(ar[j+1])>0)
                               ^
  symbol:   variable j
  location: class Prog3
Prog3.java:43: error: cannot find symbol
        if (ar[j].compareTo(ar[j+1])>0)
               ^
  symbol:   variable j
  location: class Prog3
Prog3.java:45: error: cannot find symbol
          String temp = ar[j];
                           ^
  symbol:   variable j
  location: class Prog3
Prog3.java:46: error: cannot find symbol
          ar[j] = ar[j+1];
             ^
  symbol:   variable j
  location: class Prog3
Prog3.java:46: error: cannot find symbol
          ar[j] = ar[j+1];
                     ^
  symbol:   variable j
  location: class Prog3
Prog3.java:47: error: cannot find symbol
          ar[j+1] = temp;
             ^
  symbol:   variable j
  location: class Prog3
Prog3.java:50: error: cannot find symbol
      finalStr = ar[ar.length-1-i] + " " + finalStr;
                                ^
  symbol:   variable i
  location: class Prog3
8 errors

Если что-то глупо, что я по глупости скучаю, тогда я очень сожалею.

1 Ответ

0 голосов
/ 19 октября 2018

У вас есть ; после ваших циклов for, эффективно закрывающих область видимости i и j.

for ( int i = 0; i < ar.length-1; i++);
for ( int j = 0; j < ar.length-1-i; j++);
...