Java 从传递到方法的扫描字符串中提取数据

Java 从传递到方法的扫描字符串中提取数据,java,java.util.scanner,Java,Java.util.scanner,我需要将扫描仪作为参数传递给方法,并让方法根据扫描仪传递的内容打印内容 因此,如果通过的扫描仪包含“6只狐狸3只蜜蜂2 25 8只鸭子” 该方法将打印出来 foxfoxfoxfoxfoxfox beesbeesbees 2525 ducksducksducksducksducksducksducksducks 我写这个方法没有问题。我只是不知道如何使用扫描仪来实现这一点。您可以使用next()和nextInt()等方法从扫描仪中读取。您可以阅读完整的扫描仪javadoc。您可以

我需要将扫描仪作为参数传递给方法,并让方法根据扫描仪传递的内容打印内容

因此,如果通过的扫描仪包含“6只狐狸3只蜜蜂2 25 8只鸭子” 该方法将打印出来

foxfoxfoxfoxfoxfox 

beesbeesbees  
2525  
ducksducksducksducksducksducksducksducks  

我写这个方法没有问题。我只是不知道如何使用扫描仪来实现这一点。

您可以使用
next()
nextInt()等方法从
扫描仪中读取。您可以阅读完整的
扫描仪
javadoc。

您可以使用
next()
nextInt()等方法从
扫描仪
读取。您可以阅读完整的
扫描仪
javadoc。

试试这个。有两种读取输入的方法

1) 封装在BufferedReader中的InputStreamReader

2) JDK1.5中的扫描器类

请参阅本文。这会解决你的问题


试试这个。有两种读取输入的方法

1) 封装在BufferedReader中的InputStreamReader

2) JDK1.5中的扫描器类

请参阅本文。这会解决你的问题


嗯,
扫描仪用于从文件或标准输入(
System.in
)中读取内容。除非你想封装功能和职责,否则传递它不会给你带来很多好处

如果我们从解决问题的角度思考这个问题,我们真正想要得到什么

  • 我们有一个字符串,它包含第一个数字和一个字符串,第二个字符串可以包含数字

  • 所有这些符号都用空格隔开

  • 所有内容都包含在一行中;我们不必担心转移到下一行

如何实现这一点完全取决于您,但以下是几点建议:

  • 由于您知道令牌的精确顺序,因此可以多次调用
    Scanner.next()
    Scanner.nextInt()

    while(scanner.hasNext()){
    System.out.println(readFromScanner(scanner));
    }
    scanner.close();//如果您正在使用System.in,请不要执行此操作!
    从扫描仪读取的公共静态字符串(扫描仪){
    StringBuilder结果=新建StringBuilder();
    int times=scanner.nextInt();
    字符串短语=scanner.next();
    for(int i=0;i
  • 您还可以使用
    nextLine()
    一次读入整行,然后使用
    String.split()
    解析整行,这会在每个偶数索引(0、2、4等)处提供数字,在每个奇数索引(1、3、5等)处提供字符串


嗯,
扫描仪用于从文件或标准输入(
System.in
)中读取内容。除非你想封装功能和职责,否则传递它不会给你带来很多好处

如果我们从解决问题的角度思考这个问题,我们真正想要得到什么

  • 我们有一个字符串,它包含第一个数字和一个字符串,第二个字符串可以包含数字

  • 所有这些符号都用空格隔开

  • 所有内容都包含在一行中;我们不必担心转移到下一行

如何实现这一点完全取决于您,但以下是几点建议:

  • 由于您知道令牌的精确顺序,因此可以多次调用
    Scanner.next()
    Scanner.nextInt()

    while(scanner.hasNext()){
    System.out.println(readFromScanner(scanner));
    }
    scanner.close();//如果您正在使用System.in,请不要执行此操作!
    从扫描仪读取的公共静态字符串(扫描仪){
    StringBuilder结果=新建StringBuilder();
    int times=scanner.nextInt();
    字符串短语=scanner.next();
    for(int i=0;i
  • 您还可以使用
    nextLine()
    一次读入整行,然后使用
    String.split()
    解析整行,这会在每个偶数索引(0、2、4等)处提供数字,在每个奇数索引(1、3、5等)处提供字符串


您可以通过以下方式传递参数:

在此处输入并接受

  System.out.println("Input here: " );
  String input = scan.next();

  // This how you gonna pass the parameter
  inputedByScanner(input);
您的方法接受它并打印输入的值

public void print inputedByScanner(String input){
   System.out.println(input);
}

可以通过以下方式传递参数:

在此处输入并接受

  System.out.println("Input here: " );
  String input = scan.next();

  // This how you gonna pass the parameter
  inputedByScanner(input);
您的方法接受它并打印输入的值

public void print inputedByScanner(String input){
   System.out.println(input);
}

你是从文件中读取的吗?你是从文件中读取的吗?Scanner是像int和Java中的其他类型一样的类型,那么你如何将其他类型传递到函数中呢?做同样的事情来做Scanner type:)是的是的。我忘记了空格分隔符。我很惭愧。Scanner是类似于int和Java中其他类型的类型,那么如何将其他类型传递到函数中呢?做同样的事情来做Scanner类型:)耶耶耶耶。我忘记了空格分隔符。我很丢脸。所以我会在里面使用另一种方法,那么?@ChristopherBaldwin你真的必须把扫描器类型传递给你的函数吗?您是要读取文件还是从控制台读取?@ChristopherBaldwin您只需调用方法名,然后在其中传递参数。然后它会自动打印您输入的内容,所以我会在其中使用另一种方法,然后?@ChristopherBaldwin您真的必须将扫描仪类型传递给您的函数吗?您是要读取文件还是从控制台读取?@ChristopherBaldwin您只需调用方法名,然后在其中传递参数。然后它会自动打印您输入的内容
Enter something:
6 fox 3 bees 2 25 8 ducks
foxfoxfoxfoxfoxfox
beesbeesbees
2525
ducksducksducksducksducksducksducksducks