处理java中找不到符号错误

处理java中找不到符号错误,java,methods,split,Java,Methods,Split,这是我的代码,用于读取具有多行的文件,每行包含字符串和浮动,并打印出每行。我一直收到一个错误,无法找到方法split()和loadStrings()的符号。 我做错了什么 import java.util.Scanner; import java.io.FileNotFoundException; import java.io.File; import java.util.SplittableRandom; public class EmployeePay { public stati

这是我的代码,用于读取具有多行的文件,每行包含字符串和浮动,并打印出每行。我一直收到一个错误,无法找到方法split()和loadStrings()的符号。 我做错了什么

import java.util.Scanner;
import  java.io.FileNotFoundException;
import java.io.File;
import java.util.SplittableRandom;
 public class EmployeePay {
   public static void main(String[] args) throws FileNotFoundException  {
    if (args.length != 1) {  
        final String msg = "Usage: EmployeePay name_of_input file";
          System.err.println(msg);
            throw new IllegalArgumentException(msg);
           }

      final String inputFileName = args[0];
      final File input = new File (inputFileName); 
      final Scanner scanner = new Scanner(input);

        String line = " ";
        String Identification = " ";
        float WorkTime;
        float MoneyPerHour;
        int TotalDeductions= 0;
        String[] lines, info;
        float[] numberInfo;
          lines = loadStrings(scanner);
          info = new String [lines.length];
          numberInfo = new float [lines.length];
          String [] tokens;
          for (int i =0; i < lines.length; i++){
            tokens = split(lines[i]," ");
            info [i] = tokens[0];
            numberInfo[i]= Float.parseFloat(tokens[1]);
            System.out.println(info[i]+" "+numberInfo[i]);
          }
import java.util.Scanner;
导入java.io.FileNotFoundException;
导入java.io.File;
导入java.util.SplittableRandom;
公务舱雇员津贴{
公共静态void main(字符串[]args)引发FileNotFoundException{
如果(args.length!=1){
最后一个字符串msg=“用法:输入文件的EmployeePay名称”;
系统错误打印项次(msg);
抛出新的IllegalArgumentException(msg);
}
最终字符串inputFileName=args[0];
最终文件输入=新文件(inputFileName);
最终扫描仪=新扫描仪(输入);
字符串行=”;
字符串标识=”;
浮动工作时间;
每小时浮动货币;
整数总扣除额=0;
字符串[]行,信息;
浮点数信息;
行=加载字符串(扫描仪);
info=新字符串[lines.length];
numberInfo=新浮点[lines.length];
字符串[]标记;
对于(int i=0;i
编译器是正确的,您使用了两个未声明的方法。我认为,您想使用,但不知道语法。另一方面,您没有提供
loadStrings()
方法的源代码,因此它可能只是脱离上下文,例如声明为非静态,并尝试从
static main()
使用它

无论如何,请稍微修改一下您的代码,尝试以下操作:

public static void main( final String[] args ) throws FileNotFoundException
{
    if ( args.length != 1 )
    {
        final String msg = "Usage: EmployeePay <name_of_input file>";
        System.err.println( msg );
        throw new IllegalArgumentException( msg );
    }

    final Scanner scanner = new Scanner( new File( args[0] ) );

    final String[] lines = loadStrings( scanner );
    final String[] info = new String[lines.length];
    final float[] numberInfo = new float[lines.length];
    for ( int i = 0 ; i < lines.length ; i++ )
    {
        final String[] tokens = lines[i].split( " " );
        info[i] = tokens[0];
        numberInfo[i] = Float.parseFloat( tokens[1] );
        System.out.println( info[i] + " " + numberInfo[i] );
    }
}

private static String[] loadStrings( final Scanner scanner )
{
    final List<String> result = new ArrayList<>();
    while ( scanner.hasNextLine() )
    {
        result.add( scanner.nextLine() );
    }
    return result.toArray( new String[result.size()] );
}
publicstaticvoidmain(最终字符串[]args)抛出FileNotFoundException
{
如果(args.length!=1)
{
最后一个字符串msg=“用法:EmployeePay”;
系统错误打印项次(msg);
抛出新的IllegalArgumentException(msg);
}
最终扫描仪=新扫描仪(新文件(args[0]);
最终字符串[]行=加载字符串(扫描仪);
最终字符串[]信息=新字符串[lines.length];
最终浮点数[]numberInfo=新浮点数[lines.length];
对于(int i=0;i
编译器是正确的,您使用了两个未声明的方法。我认为,您想使用,但不知道语法。另一方面,您没有提供
loadStrings()
方法的源代码,因此它可能只是脱离上下文,例如声明为非静态,并尝试从
static main()
使用它

无论如何,请稍微修改一下您的代码,尝试以下操作:

public static void main( final String[] args ) throws FileNotFoundException
{
    if ( args.length != 1 )
    {
        final String msg = "Usage: EmployeePay <name_of_input file>";
        System.err.println( msg );
        throw new IllegalArgumentException( msg );
    }

    final Scanner scanner = new Scanner( new File( args[0] ) );

    final String[] lines = loadStrings( scanner );
    final String[] info = new String[lines.length];
    final float[] numberInfo = new float[lines.length];
    for ( int i = 0 ; i < lines.length ; i++ )
    {
        final String[] tokens = lines[i].split( " " );
        info[i] = tokens[0];
        numberInfo[i] = Float.parseFloat( tokens[1] );
        System.out.println( info[i] + " " + numberInfo[i] );
    }
}

private static String[] loadStrings( final Scanner scanner )
{
    final List<String> result = new ArrayList<>();
    while ( scanner.hasNextLine() )
    {
        result.add( scanner.nextLine() );
    }
    return result.toArray( new String[result.size()] );
}
publicstaticvoidmain(最终字符串[]args)抛出FileNotFoundException
{
如果(args.length!=1)
{
最后一个字符串msg=“用法:EmployeePay”;
系统错误打印项次(msg);
抛出新的IllegalArgumentException(msg);
}
最终扫描仪=新扫描仪(新文件(args[0]);
最终字符串[]行=加载字符串(扫描仪);
最终字符串[]信息=新字符串[lines.length];
最终浮点数[]numberInfo=新浮点数[lines.length];
对于(int i=0;i
在哪里定义了
split
呢?在您的
EmployeePay
类中没有这样的方法
split
在哪里定义?在您的
EmployeePay
类中没有这样的方法