19 ответов:
очень удобно. Просто бросьте свой
charкакint.char character = 'a'; int ascii = (int) character;в вашем случае вам нужно сначала получить конкретный символ из строки, а затем привести его.
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.
просто другой подход
String s = "admin"; byte[] bytes = s.getBytes("US-ASCII");
bytes[0]будет представлять ascii из a.. и, таким образом, другие символы во всем массиве.
вместо этого:
String char = name.substring(0,1); //char="a"вы должны использовать
charAt()метод.char c = name.charAt(0); // c='a' int ascii = (int)c;
Если вы хотите преобразовать всю строку в Объединенные значения 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);где вы получите 979899 в качестве вывода.
кредит этой.
Я просто скопировал его здесь, чтобы это было удобно для других.
несколько ответов, которые предполагают показать, как это сделать, все неверны, потому что символы Java не являются символами ASCII. Java использует многобайтовую кодировку символов Юникода. Набор символов Юникода-это супер набор ASCII. Таким образом, в строке Java могут быть символы, которые не принадлежат ASCII. Такие символы не имеют числового значения ASCII, поэтому вопрос о том, как получить числовое значение ASCII символа Java, не имеет ответа.
но почему вы действительно хотите все равно это сделать? Что вы собираетесь делать со стоимостью?
Если вы хотите числовое значение, чтобы вы могли преобразовать строку Java в строку ASCII, то реальные вопрос: "как я могу кодировать строку Java как ASCII". Для этого используйте объект StandardCharsets. US_ASCII.
преобразовать char к int.
String name = "admin"; int ascii = name.toCharArray()[0];также :
int ascii = name.charAt(0);
просто привести char к типу int.
char character = 'a'; int number = (int) character;значение
numberбудет 97.
это просто, получить символ, который вы хотите, и преобразовать его в int.
String name = "admin"; int ascii = name.charAt(0);
Я знаю, что на это уже ответили в нескольких формах, но вот мой бит кода с видом, чтобы пройти через все символы.
вот код, начатый с класса
public class CheckChValue { // Class name public static void main(String[] args) { // class main String name = "admin"; // String to check it's value int nameLenght = name.length(); // length of the string used for the loop for(int i = 0; i < nameLenght ; i++){ // while counting characters if less than the length add one char character = name.charAt(i); // start on the first character int ascii = (int) character; //convert the first character System.out.println(character+" = "+ ascii); // print the character and it's value in ascii } }}
String str = "abc"; // or anything else // Stores strings of integer representations in sequence StringBuilder sb = new StringBuilder(); for (char c : str.toCharArray()) sb.append((int)c); // store ascii integer string array in large integer BigInteger mInt = new BigInteger(sb.toString()); System.out.println(mInt);
String name = "admin"; char[] ch = name.toString().toCharArray(); //it will read and store each character of String and store into char[]. for(int i=0; i<ch.length; i++) { System.out.println(ch[i]+ "-->"+ (int)ch[i]); //this will print both character and its value }
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]); } } }
Как указал @Raedwald, Unicode Java не обслуживает все символы, чтобы получить значение ASCII. Правильный путь (Java 1.7+) следующим образом :
byte[] asciiBytes = "MyAscii".getBytes(StandardCharsets.US_ASCII); String asciiString = new String(asciiBytes); //asciiString = Arrays.toString(asciiBytes)
или вы можете использовать Stream API для 1 символа или строки, начиная с Java 1.8:
public class ASCIIConversion { public static void main(String[] args) { String text = "adskjfhqewrilfgherqifvehwqfjklsdbnf"; text.chars() .forEach(System.out::println); } }
вы можете проверить номер ASCIIs с помощью этого кода.
String name = "admin"; char a1 = a.charAt(0); int a2 = a1; System.out.println("The number is : "+a2); // the value is 97Если я ошибаюсь, прошу прощения.
Если вы хотите значение ASCII всех символов в строке. Вы можете использовать это :
String a ="asdasd"; int count =0; for(int i : a.toCharArray()) count+=i;и если вы хотите ASCII одного символа в строке, вы можете пойти на:
(int)a.charAt(index);
Я пытался то же самое, но лучшим и простым решением было бы использовать charAt и для доступа к индексам мы должны создать целочисленный массив [128] размера.
String name = "admin"; int ascii = name.charAt(0); int[] letters = new int[128]; //this will allocate space with 128byte size. letters[ascii]++; //increments the value of 97 to 1; System.out.println("Output:" + ascii); //Outputs 97 System.out.println("Output:" + letters[ascii]); //Outputs 1 if you debug you'll see 97th index value will be 1.в случае, если вы хотите отобразить значения ascii полной строки, вам нужно это сделать.
String name = "admin"; char[] val = name.toCharArray(); for(char b: val) { int c = b; System.out.println("Ascii value of " + b + " is: " + c); }ваш выход, в этом случае будет: Ascii значение a: 97 Ascii значение d равно: 100 Ascii значение m равно: 109 Ascii значение i равно: 105 Ascii значение n равно: 110
самый простой способ сделать это:
для всей строки в ASCII :
public class ConvertToAscii{ public static void main(String args[]){ String abc = "admin"; int []arr = new int[abc.length()]; System.out.println("THe asscii value of each character is: "); for(int i=0;i<arr.length;i++){ arr[i] = abc.charAt(i); // assign the integer value of character i.e ascii System.out.print(" "+arr[i]); } } }
выход:
THe asscii value of each character is: 97 100 109 105 110
Вот,abc.charAt(i)дает один символ строкового массива: Когда мы назначаем каждый символ целочисленному типу, компилятор выполняет преобразование типа как,
arr[i] = (int) character // Here, every individual character is coverted in ascii valueно, для одного символа:
String name = admin; asciiValue = (int) name.charAt(0);// for character 'a' System.out.println(asciiValue);
Comments