-1
public class TextFileExtractor{
    public static String[] fileExtractor(String[] s){

        StringBuilder sb=new StringBuilder();

        for(int i=0;i<=s.length-1;i++){
            if(s[i].endsWith(".txt")){
                sb.append(s[i]);
                sb.append(',');
            }
        }
        String str=sb.toString();
        String[] sa=str.split(",");

    return sa;
}
}


//P8Test.java

import java.util.*;

class P8Test{

    public static void main(String[] args) 
    {   Scanner scn=new Scanner(System.in);
        System.out.print("Enter String Array:");
        String[] data=(scn.nextLine()).split(",");

/这里我们存储使用 .split() 方法转换 String(我们动态读取)后得到的数组/

            System.out.print("all Files");
                System.out.print(Arrays.toString(data));
                    System.out.print("Text Files");

        String[] res=TextFileExtractor.fileExtractor(data);
        System.out.print(Arrays.toString(res));


    }
}

//在 P8Test 类中为什么我不能存储(scn.nextLine()).split(",")String[]对象数据System.out.print(Arrays.toString(data));中。当我给出动态输入时,bcoz 没有打印任何东西abc.txt,bbc.txt,bbc.pdf.

4

1 回答 1

1

正如我在改变之前告诉你的

String[] data = new String[(scn.nextLine()).length()];
data = (scn.nextLine()).split(",");

String[] data = scn.nextLine().split(",");

然后尝试您的代码。

早些时候,您基于第二行用户输入创建数组,因为您调用scn.nextLine()了两次。

于 2012-06-30T20:03:22.317 回答