请帮我解决这个问题:
我有两个字符串用于电子邮件ID和密码
String name = "xyz@gmail.com";
String pass = "abc";
Run Code Online (Sandbox Code Playgroud)
我将这两个编码为Base64字符串
String encoded_name = new String(Base64.encode(name.getBytes(), 0));
String encoded_pass = new String(Base64.encode(pass.getBytes(), 0));
Run Code Online (Sandbox Code Playgroud)
我需要用空格连接这两个编码的字符串
String merge = encoded_name + " " + encoded_pass;
Run Code Online (Sandbox Code Playgroud)
我在控制台中检查了这个字符串
System.out.print("Concatenate string= " + merge);
Run Code Online (Sandbox Code Playgroud)
但是在控制台中,我得到了两行这样的结果
11-18 00:25:29.898: INFO/System.out(1244): Merge= eHl6QGdtYWlsLmNvbQ==
11-18 00:25:29.908: INFO/System.out(1244): YWJj
Run Code Online (Sandbox Code Playgroud)
为什么这个讨厌的结果对我来说意外是为什么它不是单行打印.请帮我解决这个问题.
谢谢
Pir*_*iro 20
您应该使用文档中描述的NO_WRAP标志,Base64类不会添加其他换行符.
NO_WRAP:编码器标志位以省略所有行终止符(即,输出将在一条长行上).
因此,将您的行更改为以下内容:
String encoded_name = new String(Base64.encode(name.getBytes(), Base64.NO_WRAP));
String encoded_pass = new String(Base64.encode(pass.getBytes(), Base64.NO_WRAP));
Run Code Online (Sandbox Code Playgroud)
这将输出以下内容:
11-17 19:16:51.283: INFO/System.out(354): Concatenate string= eHl6QGdtYWlsLmNvbQ== YWJj
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5891 次 |
| 最近记录: |