Подтвердить что ты не робот

Преобразование символа в числовое значение ASCII в java

У меня String name = "admin";
то я делаю String char = name.substring(0,1); //char="a"

Я хочу преобразовать char в его значение ASCII (97), как это сделать в java?

4b9b3361

Ответ 1

Очень просто. Просто введите 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.

Ответ 2

просто другой подход

    String s = "admin";
    byte[] bytes = s.getBytes("US-ASCII");

bytes[0] будет представлять ascii a.. и, следовательно, другие символы во всем массиве.

Ответ 3

Вместо этого:

String char = name.substring(0,1); //char="a"

Вы должны использовать метод charAt().

char c = name.charAt(0); // c='a'
int ascii = (int)c;

Ответ 4

Если вы хотите преобразовать всю строку в конкатенированные значения 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 в качестве вывода.

Подтвердите .

Я просто скопировал его здесь, чтобы это было удобно для других.

Ответ 5

Несколько ответов, показывающих, как это сделать, неверны, поскольку символы Java не являются символами ASCII. Java использует многобайтовую кодировку символов Unicode. Набор символов Unicode - это расширенный набор символов ASCII. Таким образом, в строке Java могут быть символы, которые не принадлежат ASCII. Такие символы не имеют числового значения ASCII, поэтому вопрос о том, как получить числовое значение ASCII символа Java, остается без ответа.

Но почему ты так хочешь? Что вы собираетесь делать со значением?

Если вам нужно числовое значение, чтобы вы могли преобразовать строку Java в строку ASCII, реальный вопрос заключается в том, "как кодировать строку Java в виде ASCII". Для этого используйте объект StandardCharsets.US_ASCII.

Ответ 6

Преобразуйте char в int.

    String name = "admin";
    int ascii = name.toCharArray()[0];

Также:

int ascii = name.charAt(0);

Ответ 7

Просто введите char в int.

char character = 'a';
int number = (int) character;

Значение number будет равно 97.

Ответ 8

Это просто, получить нужный символ и преобразовать его в int.

String name = "admin";
int ascii = name.charAt(0);

Ответ 9

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);

Ответ 10

Я знаю, что это уже ответило в нескольких формах, но вот мой бит кода, чтобы просмотреть все символы.

Вот код, начинающийся с класса

public class CheckChValue {  // Class name
public static void main(String[] args) { // class main

    String name = "admin"; // String to check it 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 value in ascii
    }
}

}

Ответ 11

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
}

Ответ 12

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]);
        }
    }
}

Ответ 13

Как отметил @Raedwald, Java Unicode не обслуживает все символы, чтобы получить значение ASCII. Правильный способ (Java 1.7 +) выглядит следующим образом:

byte[] asciiBytes = "MyAscii".getBytes(StandardCharsets.US_ASCII);
String asciiString = new String(asciiBytes);
//asciiString = Arrays.toString(asciiBytes)

Ответ 14

Легкий способ для этого:

    int character = 'a';

Если вы напечатаете "символ", вы получите 97.

Ответ 15

Или вы можете использовать Stream API для 1 символа или String, начиная с Java 1.8:

public class ASCIIConversion {
    public static void main(String[] args) {
        String text = "adskjfhqewrilfgherqifvehwqfjklsdbnf";
        text.chars()
                .forEach(System.out::println);
    }
}

Ответ 16

Вы можете проверить номер ASCII с помощью этого кода.

String name = "admin";
char a1 = a.charAt(0);
int a2 = a1;
System.out.println("The number is : "+a2); // the value is 97

Если я ошибаюсь, извини.

Ответ 17

Если вы хотите получить значение ASCII всех символов в строке. Вы можете использовать это:

String a ="asdasd";
int count =0;
for(int i : a.toCharArray())
    count+=i;

и если вы хотите ASCII одного символа в String, вы можете пойти:

(int)a.charAt(index);

Ответ 18

Я пытался сделать то же самое, но лучшим и простым решением было бы использовать 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 значение я равно: 105 Ascii значение n равно: 110

Ответ 19

Легкий способ сделать это:

Для целых строк в 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) дает единственный символ массива String: когда мы присваиваем каждому символу целочисленный тип, тогда компилятор должен преобразовывать тип как,

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);

Ответ 20

используя 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]

Ответ 21

Для этого мы могли бы сразу использовать String Classe's

    input.codePointAt(index);

Я хотел бы дать еще одно предложение, чтобы преобразовать всю строку в соответствующие коды ASCII, используя Java 8, например, "abcde" в "979899100101".

    String input = "abcde";
    System.out.println(
            input.codePoints()
                    .mapToObj((t) -> "" + t)
                    .collect(joining()));