簡體   English   中英

Java如何從文本文件中提取單詞?

[英]How Java extracts words from a text file?

我有一個文本文件,其中包含一行數據,我想從文本文件中提取單詞。

我要提取的詞是:“ 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);
    }
}

由於文本文件在一行中,因此我不知道如何從字符串中提取值。

您需要分割字符串。

在您的情況下,我假設單詞之間用空格隔開,所以string.split("\\\\s+"); 應該把戲。

似乎您正在嘗試解析一些json代碼。 您可以使用json解析器(簽出: http : //www.json.org/java/ ),或者如果您的需求很簡單,則使用正則表達式提取所需的位。 也許像這樣:

    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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM