小编Age*_*ntM的帖子

我应该使用 new BASE64Encoder() 还是 Base64.getEncoder() 在 java 中编码图像?

在 Java 中,我们找到两个类Base64BASE64Encoder通过以下方式对字节执行 base64 编码

Base64.getEncoder.encodeToString(someByteArray);

和分别:

new BASE64Encoder().encode(someByteArray);

我正在尝试对图像文件进行 base64 编码,它将返回一个相对较大的字符串(6k-7k 字符长 base64)

是否有任何约定高于另一个使用一个,任何性能差异或其他原因使用一个在另一个之上?

java base64 image

2
推荐指数
1
解决办法
2135
查看次数

Java Scanner中的非捕获组将被忽略

我试图让扫描仪在每个@符号上分割一个字符串,但转义时除外(或在一行的开头)

我的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)

java regex delimiter java.util.scanner

2
推荐指数
1
解决办法
39
查看次数

标签 统计

java ×2

base64 ×1

delimiter ×1

image ×1

java.util.scanner ×1

regex ×1