Cel*_*lta 155 java string ascii
我有,String name = "admin";
然后我做String char = name.substring(0,1); //char="a"
我想将char其转换为ASCII值(97),我该如何在java中执行此操作?
Sud*_*hul 259
非常简单.把你char当成一个int.
char character = 'a';
int ascii = (int) character;
Run Code Online (Sandbox Code Playgroud)
在您的情况下,您需要首先从字符串中获取特定字符然后再将其强制转换.
char character = name.charAt(0); // This gives the character 'a'
int ascii = (int) character; // ascii is now 97.
Run Code Online (Sandbox Code Playgroud)
虽然不需要强制转换,但它提高了可读性.
int ascii = character; // Even this will do the trick.
Run Code Online (Sandbox Code Playgroud)
sti*_*ike 48
只是一种不同的方法
String s = "admin";
byte[] bytes = s.getBytes("US-ASCII");
Run Code Online (Sandbox Code Playgroud)
bytes[0] 将代表一个..的ascii,从而代表整个数组中的其他字符.
chr*_*her 19
而不是这个:
String char = name.substring(0,1); //char="a"
Run Code Online (Sandbox Code Playgroud)
你应该使用这种charAt()方法.
char c = name.charAt(0); // c='a'
int ascii = (int)c;
Run Code Online (Sandbox Code Playgroud)
use*_*904 10
如果您想将整个字符串转换为连续的ASCII值,那么您可以使用此 -
String str = "abc"; // or anything else
StringBuilder sb = new StringBuilder();
for (char c : str.toCharArray())
sb.append((int)c);
BigInteger mInt = new BigInteger(sb.toString());
System.out.println(mInt);
Run Code Online (Sandbox Code Playgroud)
其中你将得到979899作为输出.
相信这一点.
我只是在这里复制它,以便其他人方便.
Rae*_*ald 10
声称显示如何执行此操作的几个答案都是错误的,因为Java字符不是ASCII字符.Java使用Unicode字符的多字节编码.Unicode字符集是一组超级ASCII.因此,Java字符串中可能存在不属于ASCII的字符.这些字符没有ASCII数字值,因此询问如何获取Java字符的ASCII数值是无法回答的.
但是你为什么要这样做呢?你打算怎么做这个价值?
如果你想要数值,所以你可以将Java字符串转换为ASCII字符串,真正的问题是"我如何将Java字符串编码为ASCII".为此,请使用对象StandardCharsets.US_ASCII.
将 char 转换为 int。
String name = "admin";
int ascii = name.toCharArray()[0];
Run Code Online (Sandbox Code Playgroud)
还 :
int ascii = name.charAt(0);
Run Code Online (Sandbox Code Playgroud)
只需将 char 转换为 int 即可。
char character = 'a';
int number = (int) character;
Run Code Online (Sandbox Code Playgroud)
的值为number97。