我有一個文件有很多行。 例如:如何檢索java中的.txt的所有十六進制值
toto = 0x0020 tata 0x2000 0x0003
tata = 0x0001
tututtt = 0x0021
=> 0x3200
我只是想在一個字節數組有這些十六進制值。 我試圖使用BufferReader和分割線與「」,但我需要找到一種方法來保持專有的十六進制值。
在此先感謝您的幫助。
我有一個文件有很多行。 例如:如何檢索java中的.txt的所有十六進制值
toto = 0x0020 tata 0x2000 0x0003
tata = 0x0001
tututtt = 0x0021
=> 0x3200
我只是想在一個字節數組有這些十六進制值。 我試圖使用BufferReader和分割線與「」,但我需要找到一種方法來保持專有的十六進制值。
在此先感謝您的幫助。
我會用java.util.Scanner
去可以讀取的標記和圖案,下面是一個可以讀取文件中的代碼:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.regex.Pattern;
public class ReadOnlyHex {
private static Pattern pattern = Pattern.compile("0x\\d{4}");
public static void main(String[] args) throws FileNotFoundException {
Scanner in = new Scanner(new File("c:/temp/input.txt"));
while(in.hasNextLine()) {
String token = in.findInLine(pattern);
if (token == null) {
in.nextLine();
continue;
}
System.out.println(token.getBytes());
}
in.close();
}
}
我只能假設你正在尋找字符串的字節數組,可以String.getBytes()
否則實現,該值表示int
以後可改爲Integer.toBinaryString
您可以使用正則表達式模式進行過濾。如果您使用的是Java8,則循環播放並使用過濾器函數。
所以先定義你的模式
final Pattern p= Pattern.compile("0x[0-9A-F]+$");
然後您可以篩選每一行數組作爲
String[] splitLineArray=line.split(" ");
String[] hexNumbers=Arrays.stream(splitLineArray).filter((s)-> p.matcher(s).matches()).toArray();
這將返回唯一的十六進制數的新數組。
這正是我期待的!非常感謝 – Yahie