从键盘读取数据以存储在字符串数组中

时间:2014-03-12 08:52:07

标签: java string java.util.scanner

String s[];
System.out.println("Enter loop value");
int t = s.nextInt();
for(int i=0;i<t;i++)
{
 str[i]=s.nextLine();
}

虽然它读取它会给出空指针异常

4 个答案:

答案 0 :(得分:2)

你需要的是这样的东西:

    Scanner s = new Scanner(System.in);

    System.out.println("Enter loop value");
    int t = s.nextInt(); // read number of element
    s.nextLine(); // consume new line
    String str[] = new String[t];
    for(int i=0;i<t;i++)
    {
     str[i]=s.nextLine();
    }

    System.out.println(Arrays.toString(str));

希望这有帮助。

答案 1 :(得分:0)

尝试这样的事情:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter loop value");
    String a[] = new String[Integer.parseInt(br.readLine())];
    for (int i = 0; i < a.length; i++) {
        a[i] = br.readLine();
    }

答案 2 :(得分:0)

我更改了代码中的拼写错误和遗漏声明:

package snippet;

import java.io.IOException;
import java.util.Arrays;
import java.util.Scanner;

public class Snippet {

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

        Scanner s = new Scanner(System.in);

        String str[] = new String[10];
        System.out.println("Enter loop value (maximum 9)");
        int t = s.nextInt();
        for (int i = 0; i <= t; i++) {
            str[i] = s.nextLine();
        }

        System.out.println("your entered lines:");
        System.out.println(Arrays.toString(str));
    }

}

但是,我建议将值存储在List而不是Array中。我还希望使用BufferedReader来使用Scanner

答案 3 :(得分:0)

//After modifying my code works well
import java.io.*;
import java.util.Scanner;
class Sample 
{
public static void main(String[] args) throws Exception
{
    bufferedReader();
            scanner();
}
    static void bufferedReader()throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            System.out.println("Enter Number of Strings");
            int len = Integer.parseInt(br.readLine());
            String a[] = new String[len];
    for(int i=0; i<len; i++){
                System.out.println("Enter String"+ (i+1));
        a[i] = br.readLine();
    }
            for(String str : a)
            System.out.println(str);
    }
    static void scanner(){
        Scanner s = new Scanner(System.in);
            System.out.println("Enter Number of Strings");
            int len = Integer.parseInt(s.nextLine());
            String a[] = new String[len];
    for(int i=0; i<len; i++){
                System.out.println("Enter String"+ (i+1));
        a[i] = s.nextLine();
    }
            for(String str : a)
            System.out.println(str);
    }
}

但是当使用Scanner时,nextLine()会在读取时跳过数据 如果有人知道请用例子发表说明