【问题标题】:How Add Strings from Multiple Text Files to Array如何将多个文本文件中的字符串添加到数组中
【发布时间】:2016-06-14 14:08:26
【问题描述】:

我有一个文本文件名的字符串数组。我想通过一个迭代器发送这个字符串数组,让它给我每个文本文件的前 X 个字符。然后它将这些字符串放入一个数组中,我可以将其包含在列表视图中。

我正计划使用缓冲阅读器来阅读文本,然后将其子串化。但至于使用循环遍历每个文件,我猜你需要使用 for 循环或 foreach 循环。但是我真的不知道如何使用这些。

任何帮助将不胜感激。谢谢!

编辑:

我应该早点添加的。我正在使用它来显示已下载的文件,并为他们提供文本文件的预览。但是,就像我上面所说的,其中一些尚未下载。我想知道文件名数组中实际存在的位置,并能够将检索到的字符串放在列表视图的适当位置。这会影响任何当前的答案吗?有什么想法吗?

【问题讨论】:

  • Array 不是 List,请编辑您的问题以使其正确/一致,并向我们展示您迄今为止处理的代码。
  • 那么,你不知道如何使用循环?或者你不知道如何从文件中读取?或者是其他东西?请更具体地说明您到目前为止所做的事情,以及您在做什么和不知道如何做。附言实际代码比描述性文本好多
  • 尝试使用Scanner 类读取文件以提取您需要的文本,然后向我们展示您卡在哪里(如果有的话)
  • 我已经编辑了我的问题。我不知道如何使用循环。一个简单的例子来说明如何阅读文件名以及从代码中的何处读取文本将非常有帮助。

标签: java android arrays for-loop foreach


【解决方案1】:

让我们为你拥有的变量命名:

字符串数组:字符串文件名[]

x 个字符:int x

文件中的 x 字符数组:字符串字符 []。假设您将每个索引设置为空字符串。

import java.util.Scanner

public static void main(String[] args) {
    Scanner fin = null;

    // Loop through files
    for(int i = 0; i < filenames.length; i++) {

        // Open the file with a FileReader
        fin = new Scanner(new BufferedReader(new FileReader(filenames[i])));

        // Loop through x chars and add to string
        for(int j = 0; j < x && fin.hasNext(); j++) {
            chars[i] += fin.next();
        }

        // Close your file
        fin.close();
    }
}

【讨论】:

  • 变量chars是字符串数组吗?如何正确初始化它?
【解决方案2】:

感谢您的帮助。这就是我最终的结果:

    filenamearray = filenamefinal.split(";");
    try {


        List<String> results = new ArrayList<String>();
        for (int i = 0; i < filenamearray.length; i++) {

            File txt = new File(getExternalFilesDir(Environment.DIRECTORY_MUSIC) + "/" + filenamearray[i] + ".txt");
            if (txt.exists()) {

                txtread = new FileInputStream(getExternalFilesDir(Environment.DIRECTORY_MUSIC) + "/" + filenamearray[i] + ".txt");
                BufferedReader reader = new BufferedReader(new InputStreamReader(txtread));
                String text = reader.readLine();
                displaytxt = text.substring(0, 45) + ". . ."
                results.add(displaytxt);
            } else {
                results.add("empty");
            }
        }

        finalversetextarray = new String[results.size()];
        finalversetextarray = results.toArray(finalversetextarray);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-17
    • 2020-09-22
    • 2013-09-24
    • 1970-01-01
    • 2014-11-14
    • 2023-03-13
    • 1970-01-01
    • 2014-08-06
    相关资源
    最近更新 更多