Teken omzetten in ASCII-numerieke waarde in java

Ik heb String name = "admin";
dan doe ik String charValue = name.substring(0,1); //charValue="a"

Ik wil de charValueconverteren naar de ASCII-waarde (97), hoe kan ik dit in Java doen?


Antwoord 1, autoriteit 100%

Heel eenvoudig. Cast je charals een int.

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

In jouw geval moet je eerst het specifieke personage uit de string halen en het dan casten.

char character = name.charAt(0); // This gives the character 'a'
int ascii = (int) character; // ascii is now 97.

Hoewel casten niet expliciet vereist is, verbetert het de leesbaarheid.

int ascii = character; // Even this will do the trick.

Antwoord 2, autoriteit 15%

gewoon een andere aanpak

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

bytes[0]staat voor ascii van a.. en dus de andere karakters in de hele array.


Antwoord 3, autoriteit 6%

In plaats van dit:

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

U moet de methode charAt()gebruiken.

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

Antwoord 4, autoriteit 4%

De verschillende antwoorden die beweren te laten zien hoe je dit moet doen, zijn allemaal fout omdat Java-tekens geen ASCII-tekens zijn. Java gebruikt een multibyte-codering van Unicode-tekens. De Unicode-tekenset is een superset van ASCII. Er kunnen dus karakters in een Java-string zitten die niet tot ASCII behoren. Dergelijke tekens hebben geen numerieke ASCII-waarde, dus vragen hoe u de numerieke ASCII-waarde van een Java-teken kunt krijgen, is niet te beantwoorden.

Maar waaromwil je dit eigenlijk doen? Wat gaat u met de waarde doen?

Als u de numerieke waarde wilt, zodat u de Java-tekenreeks kunt converteren naar een ASCII-tekenreeks, is de echtevraag “hoe codeer ik een Java-tekenreeks als ASCII”. Gebruik daarvoor het object StandardCharsets.US_ASCII.


Antwoord 5, autoriteit 3%

Als je de hele string wilt converteren naar aaneengeschakelde ASCII-waarden, dan kun je dit gebruiken –

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

waarin je 979899 als uitvoer krijgt.

Met dank aan dit.

Ik heb het zojuist hier gekopieerd zodat het voor anderen handig is.


Antwoord 6, autoriteit 2%

Converteer de char naar int.

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

Ook :

int ascii = name.charAt(0);

Antwoord 7

Creëer de char gewoon naar een int.

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

De waarde van numberis 97.


Antwoord 8

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

Antwoord 9

Ik weet dat dit al in verschillende vormen is beantwoord, maar hier is mijn stukje code met een blik om alle tekens te doorlopen.

Hier is de code, begonnen met de klas

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
    }
}

}


Antwoord 10

Een gemakkelijke manier hiervoor is:

   int character = 'a';

Als u “karakter” afdrukt, krijgt u 97.


Antwoord 11

Het is eenvoudig, haal het gewenste personage en converteer het naar INT.

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

Antwoord 12

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

Antwoord 13

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
}

Antwoord 14

Zoals @raedwald erop gewezen, is Java’s Unicode niet voor alle personages om ASCII-waarde te krijgen. De juiste manier (Java 1.7 +) is als volgt:

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

Antwoord 15

Of u kunt Stream API gebruiken voor 1 tekens of een tekenreeks die begint in Java 1.8:

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

Antwoord 16

met Java 9 => String.chars()

String input = "stackoverflow";
System.out.println(input.chars().boxed().collect(Collectors.toList()));

uitvoer – [115, 116, 97, 99, 107, 111, 118, 101, 114, 102, 108, 111, 119]


Antwoord 17

U kunt het ASCII-nummer controleren met deze code.

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

Als ik het mis heb, excuses.


Antwoord 18

Als u de ASCII-waarde van alle tekens in een tekenreeks wilt. U kunt dit gebruiken:

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

en als u ASCII van een enkel teken in een string wilt, kunt u kiezen voor:

(int)a.charAt(index);

Antwoord 19

Ik probeerde hetzelfde, maar de beste en makkelijke oplossing zou zijn om charAt te gebruiken en om toegang te krijgen tot de indexen zouden we een integer array van [128] grootte moeten maken.

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.

Als u ascii-waarden van de volledige String wilt weergeven, moet u dit doen.

String name = "admin";
char[] val = name.toCharArray();
for(char b: val) {
 int c = b;
 System.out.println("Ascii value of " + b + " is: " + c);
}

Uw uitvoer is in dit geval:
Ascii-waarde van a is: 97
Ascii-waarde van d is: 100
Ascii-waarde van m is: 109
Ascii-waarde van i is: 105
Ascii-waarde van n is: 110


Antwoord 20

De makkelijke manier om dit te doen is:

Voor hele string in 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]);
      }
    }
}


De uitvoer is:

THe asscii value of each character is:
97 100 109 105 110


Hier geeft abc.charAt(i)het enkele teken van String-array:
Wanneer we elk karakter toewijzen aan integer type, dan typt de compiler conversie als,

arr[i] = (int) character // Here, every individual character is coverted in ascii value

Maar voor één teken:

String name = admin;
asciiValue = (int) name.charAt(0);// for character 'a'
System.out.println(asciiValue);


Antwoord 21

Hiervoor zouden we meteen String classe’s kunnen gebruiken

   input.codePointAt(index);

Ik zou nog een suggestie willen geven om de hele string te converteren naar overeenkomstige ascii-codes, met behulp van java 8
bijvoorbeeld “abcde” naar “979899100101”.

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

Antwoord 22

Eenregelige oplossing zonder extra int-variabele:

String name = "admin";
System.out.println((int)name.charAt(0));

Other episodes