java - Java中变量值从String到Long的转换

标签 java android string cryptography type-conversion

Java 中是否有将字符串值转换为 long 的方法? 显然, String.format("%040x", new BigInteger(1, message.getBytes(message))); 仅更改其格式而不是值。我需要更改该值,因为我将使用转换后的变量进行加密(PRINCE)过程,该过程将以长(十六进制)格式进行处理。

  public void onClick(View v, String args) 
                {             
                 String phoneNo = txtPhoneNo.getText().toString();
                 String message = txtMessage.getText().toString();              
                    if (phoneNo.length()>0 && message.length()>0){
                        //prince pri = new prince();
                        //message = toLong();
                        String.format("%040x", new BigInteger(1, message.getBytes(message)));
                        prince.Encrypt (message, k0, kop, k1, t);
                        sendSMS(phoneNo, message); }               
                    else
                     Toast.makeText(getBaseContext(), 
                            "Please enter both phone number and message.", 
                            Toast.LENGTH_SHORT).show();
                }

最佳答案

您可以使用 Long.parseLong() 来实现这一点。

new BigInteger(1, message.getBytes(message)) 不应该工作。首先,message.getBytes() 会抛出未知字符集的异常。

此外,new BigInteger(1, message.getBytes("UTF-8")) 将为大多数输入返回奇怪的结果。

我猜你的问题实际上是:如何将字符串转换为字节并将其转换为十六进制字符串?

解决方案:

byte[] data = message.getBytes("UTF-8");

从字符串中获取字节数组。然后这个问题告诉您如何将其转换为十六进制字符串: How to convert a byte array to a hex string in Java?

关于java - Java中变量值从String到Long的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26779839/

相关文章:

java - 在 JBoss 上发布时通过 Maven 插件复制文件

android - 1 个应用程序处理所有 NFC 请求,还是很多应用程序?

android - 在 ListView 上长按事件后创建菜单

android - 在更新的 Android 版本中导入旧项目

string - 获取和删除字符串的第一个字符

java - 同时进行字符串操作 : insert words at certain indexes in string,

java - Serialized RDD如何在内存中占用更少的空间?

java - Keycloak无法获取访问 token

c++ - 近似字符串匹配的概率预选

java - 如何用 Java 编写正确的微基准测试?