আমার 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
হিসাবে castালাই 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.
যদিও castালাই স্পষ্টভাবে প্রয়োজন হয় না, তবে এটি পঠনযোগ্যতার উন্নতি করে।
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 সংখ্যার মান থাকে না, সুতরাং জাভা চরিত্রের 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);
কেবল চার্জটি একটি int- তে কাস্ট করুন।
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
। ইউনিকোডের একটি পাঠ্য ইউনিট একটি গ্রাফিম, যা শূন্য বা আরও বেশি সংমিশ্রিত কোডপয়েন্টের পরে একটি বেস কোডপয়েন্ট। জাভাতে একটি কোডপয়েন্ট, ইউটিএফ -16 এ এনকোড করা হয়েছে, যার char
কোডপয়েন্টের জন্য এক বা দুটি 16-বিট কোড ইউনিট ( ) প্রয়োজন হতে পারে । কোডপয়েন্টগুলি পুনরাবৃত্তি করতে, এই উত্তরটি দেখুন । কোডটি ইতিমধ্যে ইন্ডেক্স এবং মিডিল ফিঙ্গার্স ক্রসড কোডডপয়েন্টের সাথে আপ এবং আগত ইউ + 1F91E এর জন্য প্রস্তুত হওয়া উচিত।
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
}
@ রেডওয়াল্ড যেমন উল্লেখ করেছেন, জাভার ইউনিকোড 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 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);
আমি একই জিনিসটি চেষ্টা করছিলাম, তবে সর্বোত্তম এবং সহজ সমাধান হ'ল চারআউট ব্যবহার করা এবং সূচীগুলি অ্যাক্সেস করার জন্য আমাদের [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);
}
আপনার আউটপুট, এই ক্ষেত্রে, এটি হবে: একটি এর আসকি মান হ'ল: 97 ডি এর আসকি মান হ'ল: এম এর 100 এসকি মান হ'ল: 109 এর এসকি মান হ'ল: 105 এর এন এর আসকি মান: 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);
আমি জাভা using ব্যবহার করে উদাহরণস্বরূপ "অ্যাবসিডি" "" 979899100101 "তে পুরো স্ট্রিংটিকে সংশ্লিষ্ট এসকি কোডগুলিতে রূপান্তর করতে আরও একটি পরামর্শ দিতে চাই।
String input = "abcde";
System.out.println(
input.codePoints()
.mapToObj((t) -> "" + t)
.collect(joining()));
String char
কখনই সংকলন করবে । আপনি কি ভেরিয়েবলটির নাম পরিবর্তন করতে চানString ch