在 Java 中,我们找到两个类Base64并BASE64Encoder通过以下方式对字节执行 base64 编码
Base64.getEncoder.encodeToString(someByteArray);
和分别:
new BASE64Encoder().encode(someByteArray);
我正在尝试对图像文件进行 base64 编码,它将返回一个相对较大的字符串(6k-7k 字符长 base64)
是否有任何约定高于另一个使用一个,任何性能差异或其他原因使用一个在另一个之上?
我试图让扫描仪在每个@符号上分割一个字符串,但转义时除外(或在一行的开头)
我的RegEx:
(?:[^\\])@
(?: // Start of non-capturing group (0)
[ // Match any characters in square brackets [
^\\ // Match any non-\ character.
] // ]
) // End of non-capturing group (0)
@ // Match literal '@'
Run Code Online (Sandbox Code Playgroud)
从我的理解来看,这应该符合我的意图。
但是,在扫描仪中使用此模式时,它只是忽略了以下事实:不应将非捕获组计入定界符,只是为了与之匹配,定界符(要删除/分割的部分)应仅为'@ '。因此,对于以下示例字符串:“ Hello @ World”,结果必须为[“ Hello”,“ World”]。
除了运行下面的代码示例:
private static void test() {
try (Scanner sc = new Scanner("test@here")) {
sc.useDelimiter("(?:[^\\\\])@"); // Every unescaped @ sign.
while (sc.hasNext()) {
String token = sc.next();
System.out.println(token);
}
}
}
Run Code Online (Sandbox Code Playgroud)
产量:
tes …Run Code Online (Sandbox Code Playgroud)