首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从java中的txt文件中检索特定的字符串

从java中的txt文件中检索特定的字符串
EN

Stack Overflow用户
提问于 2016-12-06 11:11:43
回答 3查看 2.6K关注 0票数 1

嘿,我有一个txt文件,我只想从它读取一个特定的字符串。档案:

代码语言:javascript
复制
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,以便将其保存在字符串中,在本例中,字符串UniqID = "Batman7PM-9PMMidVally“。你知道怎么实现吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-12-06 11:36:12

代码语言:javascript
复制
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;
    }
}

如果文件总是具有相同的结构。

票数 3
EN

Stack Overflow用户

发布于 2016-12-06 11:28:59

代码语言:javascript
复制
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;
    }

}
票数 1
EN

Stack Overflow用户

发布于 2016-12-06 11:27:17

这是一个类似于json的结构,除了您确认后生成的这个票证。尝试将文本转换为json,然后尝试检索作为键值对。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40993955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档