Ik heb String name = "admin";
dan doe ik String charValue = name.substring(0,1); //charValue="a"
Ik wil de charValue
converteren naar de ASCII-waarde (97), hoe kan ik dit in Java doen?
Antwoord 1, autoriteit 100%
Heel eenvoudig. Cast je char
als 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 number
is 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));