O String name = "admin";
zaman yaparımString char = name.substring(0,1); //char="a"
char
ASCII değerini (97) dönüştürmek istiyorum, bunu java'da nasıl yapabilirim?
O String name = "admin";
zaman yaparımString char = name.substring(0,1); //char="a"
char
ASCII değerini (97) dönüştürmek istiyorum, bunu java'da nasıl yapabilirim?
Yanıtlar:
Çok basit. Sadece char
bir int
.
char character = 'a';
int ascii = (int) character;
Sizin durumunuzda, önce Dizeden belirli bir Karakter almanız ve ardından onu atmanız gerekir.
char character = name.charAt(0); // This gives the character 'a'
int ascii = (int) character; // ascii is now 97.
Döküm açıkça gerekli olmasa da, okunabilirliği artırır.
int ascii = character; // Even this will do the trick.
int ascii = (int)name.charAt(0);
Bunun yerine:
String char = name.substring(0,1); //char="a"
charAt()
Yöntemi kullanmalısınız .
char c = name.charAt(0); // c='a'
int ascii = (int)c;
Java karakterleri ASCII karakterleri olmadığından, bunun nasıl yapılacağını gösteren birkaç yanıtın hepsi yanlıştır. Java, Unicode karakterlerin çok baytlı kodlamasını kullanır. Unicode karakter kümesi süper ASCII kümesidir. Bu nedenle, Java dizesinde ASCII'ye ait olmayan karakterler olabilir. Bu tür karakterlerin ASCII sayısal değeri yoktur, bu nedenle bir Java karakterinin ASCII sayısal değerinin nasıl alınacağını sormak cevapsızdır.
Ama bunu neden yine de yapmak istiyorsun? Bu değerle ne yapacaksın?
Java dizesini ASCII dizesine dönüştürmek için sayısal değer istiyorsanız, asıl soru "Java Dizesini ASCII olarak nasıl kodlayabilirim" dir. Bunun için nesneyi kullanın StandardCharsets.US_ASCII
.
Tüm dizeyi birleştirilmiş ASCII değerlerine dönüştürmek istiyorsanız bunu kullanabilirsiniz -
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);
burada çıktı olarak 979899 elde edersiniz.
Kredi bu .
Başkalarına uygun olması için buraya kopyaladım.
Karakteri int'ye dönüştürün.
String name = "admin";
int ascii = name.toCharArray()[0];
Ayrıca :
int ascii = name.charAt(0);
Sadece bir int için karakter.
char character = 'a';
int number = (int) character;
Değeri number
97 olacaktır.
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]);
}
}
}
Çok basit, istediğiniz karakteri alın ve int'e dönüştürün.
String name = "admin";
int ascii = name.charAt(0);
Bu zaten çeşitli şekillerde cevap verildi biliyorum ama burada tüm karakterler üzerinden gitmek için bir bakış ile kod biraz.
İşte sınıfla başlayan kod
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
ve char
. Unicode'daki bir metin birimi, temel kod noktası ve ardından sıfır veya daha fazla kod noktasını birleştiren bir grafiktir. Java'da bir kod noktası, bir kod noktası için bir veya iki 16 bit kod birimi ( char
) gerektirebilecek UTF-16'da kodlanmıştır . Kod noktalarını yinelemek için bu cevaba bakınız . Kod, örneğin, INDEX VE ORTA PARMAKLARIN ÇAPINDA kod noktası ile yaklaşan U + 1F91E EL için zaten hazır olmalıdır.
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
}
@Raedwald'ın belirttiği gibi, Java'nın Unicode'u ASCII değerini almak için tüm karakterlere hitap etmiyor. Doğru yol (Java 1.7+) aşağıdaki gibidir:
byte[] asciiBytes = "MyAscii".getBytes(StandardCharsets.US_ASCII);
String asciiString = new String(asciiBytes);
//asciiString = Arrays.toString(asciiBytes)
new String(byte[])
başka bir karakter kodlaması kullanır - zamana, makinelere ve kullanıcılara göre değişen sistem varsayılanı; neredeyse hiç işe yaramaz. Aradığın asciiString
şey hala UTF-16 çünkü Java'nın hepsi bu.
Java 9 => String.chars () kullanarak
String input = "stackoverflow";
System.out.println(input.chars().boxed().collect(Collectors.toList()));
çıktı - [115, 116, 97, 99, 107, 111, 118, 101, 114, 102, 108, 111, 119]
Bir Dizedeki tüm karakterlerin ASCII değerini istiyorsanız. Bunu kullanabilirsiniz:
String a ="asdasd";
int count =0;
for(int i : a.toCharArray())
count+=i;
ve bir String'de tek bir karakterin ASCII'sini isterseniz şu yoldan gidebilirsiniz:
(int)a.charAt(index);
Aynı şeyi deniyordum, ama en iyi ve kolay çözüm charAt kullanmak ve dizinlere erişmek için biz [128] boyutunda bir tamsayı dizi oluşturmak gerekir.
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.
Dize'nin tamamının ascii değerlerini görüntülemek istiyorsanız, bunu yapmanız gerekir.
String name = "admin";
char[] val = name.toCharArray();
for(char b: val) {
int c = b;
System.out.println("Ascii value of " + b + " is: " + c);
}
Bu durumda çıktınız şöyle olacaktır: a'nın Ascii değeri: 97 d'nin Ascii değeri: 100 Ascii değeri m: 109 Ascii değeri i: 105 Ascii değeri n: 110
Bunu yapmanın kolay yolu:
ASCII'ye tüm String için:
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 dizisinin tek karakterini verir: Her karakteri tamsayı tipine atadığımızda, derleyici tür dönüşümü yapar,
arr[i] = (int) character // Here, every individual character is coverted in ascii value
Ancak, tek bir karakter için:
String name = admin;
asciiValue = (int) name.charAt(0);// for character 'a'
System.out.println(asciiValue);
Bunun için String classe
input.codePointAt(index);
Ben java 8 örneğin "abcde" to "979899100101" kullanarak, karşılık gelen ascii kodlarına dönüştürülen dize bütün almak için bir öneri daha vermek istiyorum.
String input = "abcde";
System.out.println(
input.codePoints()
.mapToObj((t) -> "" + t)
.collect(joining()));
String char
derleyecek. Değişkeni yeniden adlandırmak isteyebilirsinizString ch