簡體   English   中英

從Java中的txt文件中檢索特定的字符串

[英]Retrieve specific string from txt file in java

嘿,我有一個txt文件,我只想從中讀取特定的字符串。 文件:

This Ticket Being Generated as You Confirm

Name    : John

Movie   : Batman

Location: MidVally

Time    : 7PM-9PM

Time    : 2

Seats   : [A-4, B-3, D-5, C-1, D-2, E-3]

UniqueID: Batman7PM-9PMMidVally

我只想檢索UniqueID並將其保存在字符串中,在這種情況下為String UniqID =“ Batman7PM-9PMMidVally”。 任何想法如何實現它

public FileReader fr = new FileReader("path/to/your/file");
public BufferedReader br = new BufferedReader(fr);
String unique;
String line;
while((line =  br.readLine()) != null){
    if (line.contains("UniqueID"))
    {
        unique = line.split(":")[1].trim();
        break;
    }
}

如果文件始終具有相同的結構。

import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.stream.Stream;


public class TestClass {


    private static final String FILE_PATH = "YOUR-FILE-PATH";

    public static void main(String... a) {

        String uniqID = "";


        uniqID = getValueFromFile(FILE_PATH, "UniqueID");

        System.out.println("String UniqID = \"" + uniqID + "\"");

    }

    private static String getValueFromFile(String filePath, String id) {

        HashMap<String, String> map= readFile(filePath);
        String  value=searchMap(map,id);

        return value;


    }

    private static String searchMap(HashMap<String,String> map,String id) {


        try {

            if(map.containsKey(id))return map.get(id);

        }
        catch (Exception e){
            e.printStackTrace();

        }
        return "Not Found";

    }

    private static HashMap readFile(String filePath) {
        HashMap<String, String> map = new HashMap<>();
        try {

            try (Stream<String> lines = Files.lines(Paths.get(filePath), StandardCharsets.UTF_8)) {
                for (String line : (Iterable<String>) lines::iterator) {
                    String[] lineValues = line.split(":");
                    if (lineValues.length == 2)
                        map.put(lineValues[0].trim(), lineValues[1].trim());
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
        return map;
    }

}

這是一個類似於json的結構,但在您確認時會生成此票證。 嘗試將文本轉換為json,然后嘗試檢索as鍵值對。

暫無
暫無

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

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