java连接两个字符串错误

时间:2011-03-21 18:57:07

标签: java

我有一个函数返回String:

public String getString(String password){

          ......

    try {
    .......
        encodedPassword =  Base64.encodeToString(msgDigest,1 );

    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (NoSuchAlgorithmException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return encodedPassword;

    }

我想添加(连接)“=”String到函数返回字符串

我尝试使用它:

encrptdPassword = getString("1234");
encrptdPassword = encrptdPassword+"=";

或者:

encrptdPassword = encrptdPassword .concat("=");

但我得到的结果就像是两个不同的物体(空间或制动之间)

我认为问题出在Base64.encodeToString中,但我必须使用基于64的字符串


函数getString返回我:

A6xnQhbz4Vx2HuGl4lXwZ5U2I8iziLRFnhP5eNfIRvQ

我想将=添加到返回的字符串中:

A6xnQhbz4Vx2HuGl4lXwZ5U2I8iziLRFnhP5eNfIRvQ=

但是我在输出

上收到了这个
A6xnQhbz4Vx2HuGl4lXwZ5U2I8iziLRFnhP5eNfIRvQ = 

或者:

A6xnQhbz4Vx2HuGl4lXwZ5U2I8iziLRFnhP5eNfIRvQ
=

...喜欢2个不同的字符串。

我哪里错了?

2 个答案:

答案 0 :(得分:1)

我假设您正在使用Apache Commons Codec中的Base64。

此类的默认构造函数使用“\ r \ n”作为行分隔符,它将添加到每个编码行的末尾。如果您不想这样,请将对象构造为:

new Base64(76, '');

如果这不是您正在调用的类(从您的代码示例中调用静态方法),请检查API并查看是否可以为转换设置行分隔符。

答案 1 :(得分:0)

不是Base64.encodeToString(msgDigest,1)填充中的1吗?

如果不是,那么你可以修剪()字符串以删除空格。