如何在java中检索.txt的所有十六进制值

如何在java中检索.txt的所有十六进制值,java,parsing,Java,Parsing,我有一个有很多行的文件。 例: 我只想把这些十六进制值放在一个字节数组中。 我曾尝试使用BufferReader并将行拆分为“”,但我需要找到一种方法来专门保留十六进制值 提前感谢您的帮助。您可以使用正则表达式模式进行筛选。如果您使用的是Java8,则在该行上循环并使用filter函数 所以首先定义你的模式 final Pattern p= Pattern.compile("0x[0-9A-F]+$"); 然后,您可以根据需要筛选每个线阵列 String[] splitLineArray=li

我有一个有很多行的文件。 例:

我只想把这些十六进制值放在一个字节数组中。 我曾尝试使用BufferReader并将行拆分为“”,但我需要找到一种方法来专门保留十六进制值


提前感谢您的帮助。

您可以使用正则表达式模式进行筛选。如果您使用的是Java8,则在该行上循环并使用filter函数

所以首先定义你的模式

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

这将返回一个只包含十六进制数的新数组。

我将使用可以读取令牌和模式的
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

这正是我想要的!多谢各位
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();
}

}