Java Программирование - синтаксическая ошибка на токене ".", @ Ожидается после этого токена - PullRequest
0 голосов
/ 25 февраля 2020

Я получаю ошибку в своем коде в операторе System.out.println. Я не уверен, почему это здесь, код работает нормально и, похоже, нет других ошибок, это должен быть какой-то код в другом месте программы, которая его вызывает. Это ошибка:

Синтаксическая ошибка на токене ".", @ Ожидается после этого токена

Пожалуйста, см. Код ниже. Я выделил жирным шрифтом строку, где происходит ошибка. Однако это не останавливает выполнение программы. Я знаю, что здесь есть другой похожий вопрос, но я не могу понять мою проблему, основываясь на этом. Синтаксическая ошибка на токене ".", @ Ожидается после этого токена

Изображение ошибок: Errors

//Method for analysing filepath

public static void fileAnalysis() throws IOException {

    // read in filepath

    System.out.println("Please enter the filepath: ");

    Scanner fileInput = new Scanner(System.in);
    String filepath = fileInput.nextLine();

    // read in file
    Scanner textToBeRead = new Scanner(new FileInputStream(filepath));
    Path path = Paths.get(filepath);
    String fileContents = Files.readAllLines(path).toString();

    fileContents = fileContents.replace('!', ' ').replace('?', ' ').replace('.',' ').replace(',',' ')
            .replace(':',' ').replace(';',' ').replace('(',' ').replace(')',' ');

    String[] wordArray = fileContents.split(" ");

    // Create a HashMap object to contain words and times they occur
    Map <String, Integer> wordFrequencies = new HashMap <String, Integer> ();

    //splits text into array of words

    // Initialize frequency table from text file
    for (String a : wordArray)
    {
        String _a = a.toLowerCase();

        //If _a contains '\''
        //Then
        //If '\'' is at the very beginning or very end, Then get rid of it
        //Else keep it

        Integer freq = wordFrequencies.get(_a);
        wordFrequencies.put(_a, (freq == null) ? 1 : freq + 1);

    }

    System.out.println (wordFrequencies.size() + " distinct words:");
    System.out.println (wordFrequencies);
    fileInput.close();
    textToBeRead.close();
}

// ОСНОВНОЙ МЕТОД

import java.io.FileInputStream; import java.io.IOException; import
java.nio.charset.StandardCharsets; import java.nio.file.Files; import
java.nio.file.Path; import java.nio.file.Paths; import
java.util.HashMap; import java.util.List; import java.util.Map; import
java.util.Scanner;

public class TextProcessorUsingHashmaps {   
    public static void main(String[] args) throws IOException {

        System.out.println("Please choose run mode: demo , file , text");
        Scanner mode = new Scanner (System.in);
        String modeChoice = mode.nextLine();

        if (modeChoice.equals ("file")){
          fileAnalysis();
        }

        else{
          System.out.println("Invalid. Please select a valid mode.");
        }

        mode.close();   
    }
}

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

В вашем файле TextProcessorCal c оберните ваши методы внутри класса следующим образом:

public class TextProcessorMain {  YOUR METHODS }

Затем из вашего файла TextProcessorMain вызовите методы, используя полную остановку, которой предшествует TextProcessor Cal c ( класс), как показано ниже:

 if (modeChoice.equals ("demo")){
      TextProcessorCalc.demo();
    }

Это должно решить ошибки.

0 голосов
/ 25 февраля 2020
package com.test;

import java.io.FileInputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class CheckTest {

  public static void main(String args[]) throws IOException {

    //Method for analysing filepath

    System.out.println("Please choose run mode: demo , file , text");
    Scanner mode = new Scanner(System.in);
    String modeChoice = mode.nextLine();

    if (modeChoice.equals("file")) {
      fileAnalysis();
    } else {
      System.out.println("Invalid. Please select a valid mode.");
    }

    mode.close();
  }

  public static void fileAnalysis() throws IOException {

    // read in filepath

    System.out.println("Please enter the filepath: ");

    Scanner fileInput = new Scanner(System.in);
    String filepath = fileInput.nextLine();

    // read in file
    Scanner textToBeRead = new Scanner(new FileInputStream(filepath));
    Path path = Paths.get(filepath);
    String fileContents = Files.readAllLines(path).toString();

    fileContents = fileContents.replace('!', ' ').replace('?', ' ').replace('.', ' ')
        .replace(',', ' ')
        .replace(':', ' ').replace(';', ' ').replace('(', ' ').replace(')', ' ');

    String[] wordArray = fileContents.split(" ");

    // Create a HashMap object to contain words and times they occur
    Map<String, Integer> wordFrequencies = new HashMap<String, Integer>();

    //splits text into array of words

    // Initialize frequency table from text file
    for (String a : wordArray) {
      String _a = a.toLowerCase();

      //If _a contains '\''
      //Then
      //If '\'' is at the very beginning or very end, Then get rid of it
      //Else keep it

      Integer freq = wordFrequencies.get(_a);
      wordFrequencies.put(_a, (freq == null) ? 1 : freq + 1);

    }

    System.out.println(wordFrequencies.size() + " distinct words:");
    System.out.println(wordFrequencies);
    fileInput.close();
    textToBeRead.close();
  }

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