Java如何从文本文件中提取单词?

Java如何从文本文件中提取单词?,java,Java,我有一个文本文件,其中一行包含数据,我想从文本文件中提取单词 我想提取的单词是:id和token 使用Java,我可以读取文件: import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; public class ReadStringFromFile { public static void main(String[] args) throws IOExceptio

我有一个文本文件,其中一行包含数据,我想从文本文件中提取单词

我想提取的单词是:id和token

使用Java,我可以读取文件:

import java.io.File;
import java.io.IOException;

import org.apache.commons.io.FileUtils;

public class ReadStringFromFile
{
    public static void main(String[] args) throws IOException
    {
        File file = new File("test.txt");
        String string = FileUtils.readFileToString(file);
        System.out.println("Read in: " + string);
    }
}
由于文本文件在一行中,我不知道如何从字符串中提取值。

您需要删除该字符串


在您的例子中,我假设单词之间用空格分隔,因此应该注意这一点。

看起来您正在尝试解析一些json代码。您可以使用json解析器签出:或者如果您的需求很简单,可以使用正则表达式来提取所需的位。可能是这样的:

    File file = new File("test.txt");
    String string = FileUtils.readFileToString(file);
    Pattern re = Pattern.compile("(?:,|\\{)?\"([^:]*)\":(\"[^\"]*\"|\\{[^}]*\\}|[^},]*}?)", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL);
    Matcher m = re.matcher(string);

    // Create a map of all values
    Map<String, String> map = new HashMap<String, String>();
    String id = "NOT_FOUND";
    String token = "NOT_FOUND";
    while (m.find()) {
        map.put(m.group(1), m.group(2).replace("\"", ""));
        if (m.group(1).trim().equals("id")) {
            id = m.group(2).replace("\"", "");
        }
        if (m.group(1).equals("token")) {
            token = m.group(2).replace("\"", "");
        }
    }

    System.out.println("id = " + id + " : token = " + token);

    // or 
    System.out.println(map);

这只是一根绳子。您可以使用字符串操作将该文本切成任意大小。请提供文本文件内容的示例。解析后,应将该行视为字符串。如果字符串具有id和令牌,您将如何提取?另外,行的格式是什么?您需要熟悉选项。您是否希望进一步扩展此选项以使用其他元数据?或者您只需要使用id和令牌?另外,你能在你的原始问题中给出一个完整的例子来说明整行内容吗?你的评论中把它删掉了。