我有字符串名称= "admin"; 然后我做String charValue = name.substring(0,1);/ / charValue = " "
我想将charValue转换为它的ASCII值(97),我如何在java中做到这一点?
我有字符串名称= "admin"; 然后我做String charValue = name.substring(0,1);/ / charValue = " "
我想将charValue转换为它的ASCII值(97),我如何在java中做到这一点?
当前回答
几个旨在说明如何做到这一点的答案都是错误的,因为Java字符不是ASCII字符。Java使用Unicode字符的多字节编码。Unicode字符集是ASCII的超集。因此,Java字符串中可能存在不属于ASCII的字符。这样的字符没有ASCII数字值,因此询问如何获得Java字符的ASCII数字值是无法回答的。
但你为什么要这么做?你要怎么处理这个值呢?
如果你想要数值,这样你就可以将Java字符串转换为ASCII字符串,真正的问题是“我如何将Java字符串编码为ASCII”。为此,使用StandardCharsets.US_ASCII对象。
其他回答
非常简单。只需将char类型转换为int类型。
char character = 'a';
int ascii = (int) character;
在本例中,您需要首先从String中获取特定的字符,然后强制转换它。
char character = name.charAt(0); // This gives the character 'a'
int ascii = (int) character; // ascii is now 97.
虽然没有明确要求强制转换,但它提高了可读性。
int ascii = character; // Even this will do the trick.
public class Ascii {
public static void main(String [] args){
String a=args[0];
char [] z=a.toCharArray();
for(int i=0;i<z.length;i++){
System.out.println((int)z[i]);
}
}
}
一个简单的方法是:
int character = 'a';
如果你输入“character”,你得到97。
使用Java 9 => String.chars()
String input = "stackoverflow";
System.out.println(input.chars().boxed().collect(Collectors.toList()));
输出- [115,116,97,99,107,111,118,101,114,102,108,111,119]
只需将char类型转换为int类型。
char character = 'a';
int number = (int) character;
number的值为97。