मेरे पास String name = "admin";
तो हैString char = name.substring(0,1); //char="a"
मैं char
इसके ASCII मूल्य (97) में परिवर्तित करना चाहता हूं , मैं जावा में यह कैसे कर सकता हूं?
मेरे पास String name = "admin";
तो हैString char = name.substring(0,1); //char="a"
मैं char
इसके ASCII मूल्य (97) में परिवर्तित करना चाहता हूं , मैं जावा में यह कैसे कर सकता हूं?
जवाबों:
बहुत आसान। बस अपने 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.
int ascii = (int)name.charAt(0);
इसके अलावा:
String char = name.substring(0,1); //char="a"
आपको charAt()
विधि का उपयोग करना चाहिए ।
char c = name.charAt(0); // c='a'
int ascii = (int)c;
कई उत्तर जो यह दिखाने के लिए कि यह कैसे करना है, सभी गलत हैं क्योंकि जावा अक्षर ASCII वर्ण नहीं हैं। जावा यूनिकोड वर्णों की एक मल्टीबैट एन्कोडिंग का उपयोग करता है। यूनिकोड वर्ण सेट ASCII का एक सुपर सेट है। तो जावा स्ट्रिंग में ऐसे अक्षर हो सकते हैं जो ASCII से संबंधित न हों। ऐसे वर्णों में ASCII संख्यात्मक मान नहीं होता है, इसलिए यह पूछना कि Java चरित्र का ASCII संख्यात्मक मान कैसे प्राप्त किया जा सकता है।
लेकिन आप ऐसा क्यों करना चाहते हैं? आप मूल्य के साथ क्या करने जा रहे हैं?
यदि आप संख्यात्मक मान चाहते हैं तो आप जावा स्ट्रिंग को ASCII स्ट्रिंग में बदल सकते हैं, असली सवाल यह है कि "मैं ASCII के रूप में जावा स्ट्रिंग को कैसे एन्कोड करता हूं"। उसके लिए, ऑब्जेक्ट का उपयोग करें StandardCharsets.US_ASCII
।
यदि आप संपूर्ण स्ट्रिंग को संक्षिप्त 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 मिलेगा।
करने के लिए क्रेडिट इस ।
मैंने इसे सिर्फ यहां कॉपी किया ताकि यह दूसरों के लिए सुविधाजनक हो।
चार को इंट में बदलें।
String name = "admin";
int ascii = name.toCharArray()[0];
इसके अलावा:
int ascii = name.charAt(0);
बस एक इंट करने के लिए चार डाली।
char character = 'a';
int number = (int) character;
का मूल्य number
97 होगा।
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]);
}
}
}
यह सरल है, जो चरित्र आप चाहते हैं, उसे प्राप्त करें और इसे इंट में बदलें।
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
और यूनिकोड का उपयोग करता है char
। यूनिकोड में एक पाठ्य इकाई एक ग्रेपमे है, जो एक आधार कोडपॉइंट है जिसके बाद शून्य या अधिक संयोजन कोडपॉइंट्स होते हैं। जावा में एक कोडपॉइंट, UTF-16 में एन्कोड किया गया है, जिसमें char
एक कोडपॉइंट के लिए एक या दो 16-बिट कोड यूनिट ( ) की आवश्यकता हो सकती है । कोडपॉइंट्स को पुनरावृत्त करने के लिए, यह उत्तर देखें । कोड पहले से ही ऊपर और आने वाले U + 1F91E HAND विद INDEX और MIDDLE फिंगर्स क्रॉस्ड कोड के लिए तैयार होना चाहिए, उदाहरण के लिए।
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 ने बताया, Java का यूनिकोड ASCII मान प्राप्त करने के लिए सभी वर्णों को पूरा नहीं करता है। सही तरीका (जावा 1.7+) इस प्रकार है:
byte[] asciiBytes = "MyAscii".getBytes(StandardCharsets.US_ASCII);
String asciiString = new String(asciiBytes);
//asciiString = Arrays.toString(asciiBytes)
new String(byte[])
एक और चरित्र एन्कोडिंग का उपयोग करता है - तथाकथित सिस्टम डिफ़ॉल्ट, जो समय, मशीनों और उपयोगकर्ताओं में भिन्न होता है; लगभग कभी उपयोगी नहीं। आप जिसे asciiString
अभी भी यूटीएफ -16 कहते हैं , वह सब जावा के पास है।
जावा 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]
यदि आप स्ट्रिंग में सभी वर्णों का 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.
यदि आप पूर्ण स्ट्रिंग के एएससीआई मूल्यों को प्रदर्शित करना चाहते हैं, तो आपको ऐसा करने की आवश्यकता है।
String name = "admin";
char[] val = name.toCharArray();
for(char b: val) {
int c = b;
System.out.println("Ascii value of " + b + " is: " + c);
}
आपका आउटपुट, इस मामले में, यह होगा: एससीआई का मान है: 97 एससीआई का मूल्य है: 100 मीटर का एससीआई मूल्य है: 109 आईसिटी का 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);
इसके लिए हम स्ट्रैंग क्लैसेज़ का सीधे उपयोग कर सकते हैं
input.codePointAt(index);
मैं एक और सुझाव देना चाहूंगा कि पूरे स्ट्रिंग को समान एससी कोड में परिवर्तित किया जा सकता है, उदाहरण के लिए जावा 8 का उपयोग करके, "एबेक्यू" से "979899100101"।
String input = "abcde";
System.out.println(
input.codePoints()
.mapToObj((t) -> "" + t)
.collect(joining()));
String char
कभी संकलन करेगा । हो सकता है कि आप चर का नाम बदलना चाहते होंString ch