当前位置: 首页 > 面试题库 >

String.getBytes()返回不同的值以进行多次执行?

贡英华
2023-03-14
问题内容
public static void main(String[] args) {
    try {
        String name = "i love my country";
        byte[] sigToVerify = name.getBytes();
        System.out.println("file data:" + sigToVerify);
        String name1 = "data";
        byte[] sigToVerify1 = name1.getBytes();
        System.out.println("file data1:" + sigToVerify1);

    }
}

我正在尝试执行上述程序,但getBytes()为同一程序提供了不同的值String。对于给定的字符串执行多次时,是否有任何方法可以获取相同的字节?


问题答案:
System.out.println("file data:" + sigToVerify);

在这里,您不打印a的值String。正如owlstead在注释中正确指出的那样,将在字节数组上调用Object.toString()方法sigToVerify。导致这种格式的输出:

getClass().getName() + '@' + Integer.toHexString(hashCode())

如果要打印数组中的每个元素,则必须遍历它。

byte[] bytes = "i love my country".getBytes();
for(byte b : bytes) {
    System.out.println("byte = " + b);
}

甚至更简单,请使用以下Arrays.toString()方法:

System.out.println(Arrays.toString(bytes));


 类似资料:
  • 在弹性搜索索引中,我试图通过来自字段companyName和字段productName的两个不同的顶级字段值进行查询,按generatedDate字段排序,并包括domainModelId字段。 下面的SQL查询显示了所有现有值的结果,我通过generatedDate突出显示了两个唯一的文档行(在本例中); 响应如下: 我尝试了以下方法 这将返回正确的存储桶,如下所示; 如何包含domainMod

  • 问题内容: 在执行INSERT查询时,MySQL / PHP返回了什么吗?这是我在CLASS中具有的功能。 这就是我所谓的函​​数 但是执行查询不会返回任何内容。我的功能是否需要帮助,或者这是默认行为吗?任何提示也将有所帮助。 问题答案: INSERT只返回true或false。要真正返回有用的东西,您将需要SELECT或类似的查询。没有要使用INSERT提取的结果。

  • 原文是这样的: 这确实令人惊讶,但最终明白了(嗯,至少我想我明白了)为什么会这样发生。 现在,我将第二个更改为: 如果我遗漏了一些明显的东西,或者我的问题是愚蠢的,让我提前说声对不起。还有谢谢你!

  • 问题内容: 上面的语句返回3行。但是下面的语句仅返回2行。 我知道为什么会这样,但是有一种方法可以强制item_id 1返回两次? 我要退货的示例: id-> 1筹码€2.50 id-> 1筹码€2.50 id-> 2可口可乐€1.60 -------------------- 总计€6.60 问题答案: 您可以加入另一个表,例如 或者只是在您的应用程序中复制它们。 您实际上不需要做您所要的。

  • 为什么输出的 vsnprintf 的返回值随着执行次数不同而变化呢? man vsnrpintf 手册上说的返回值是写入最终的字符串长度(如下截图中:the final string),但是实际测试并不是? 按文档说法:返回值应该为3; 实际测试结果:不为3,也不为10,而是14、15、16这样变化的数。 输出: ./a.out ====res1=10 ====res2=16, buf=sa ./

  • 问题内容: 是否可以发送jQuery.ajax调用或等效调用而没有任何形式的响应?当我使用onbeforeunload命令离开页面时,我想在服务器上触发一些操作,但这不是我需要反馈给客户端的操作,因此我只想发送该命令而不等待响应。 那可能吗? 问题答案: 每个请求都有一个响应。 即使服务器抛出错误,响应也会返回错误。 如果您只想不添加回调,则可以忽略响应。