My solution is for converting lower case alphabets (a-z) to (0-25) and vice versa.
My answer is for a specific use-case it is not generic solution my solution will help you if you want to store the frequency of character into an integer array of size 26 instead of using Hashmap<Character,Integer>
----> for converting 0 to 25 into a-z
char ch=(char)(0+'a'); // output 'a' // input 0(as integer)
char ch=(char)(25+'a'); // output 'z' // input 25(as integer)
---->for converting a to z into 0-25
int freq='a'-'a' // output 0 // input 'a'
int freq='b'-'a' // output 1 // input 'b'
int freq='c'-'a' // output 2 // input 'c'
int freq='z'-'a' // output 25 // input 'z'
Again this approach will help you to get the frequency of characters as well as characters
public class Main
{
public static void main(String[] args) {
String s="rajatfddfdf";
int freq[]= new int[26];
for(int i=0;i<s.length();i++){
char characterAtIndex=s.charAt(i);
freq[characterAtIndex-'a']+=1;
}
for(int i=0;i<26;i++){
System.out.println((char)('a'+i)+" frequency="+freq[i]);
}
}
}
by using the above code we can get the frequency as well as character using integer array of size 26 . We can write if-else logic if you don't want to include the character with frequency 0.
b = (char)('0' + a)
but only for0 <= a <= 9
. – Morell