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/