Converting A String To Hexadecimal In Java

前端 未结 21 2539
青春惊慌失措
青春惊慌失措 2020-11-22 09:55

I am trying to convert a string like \"testing123\" into hexadecimal form in java. I am currently using BlueJ.

And to convert it back, is it the same thing except b

21条回答
  •  故里飘歌
    2020-11-22 10:28

    import java.io.*;
    import java.util.*;
    
    public class Exer5{
    
        public String ConvertToHexadecimal(int num){
            int r;
            String bin="\0";
    
            do{
                r=num%16;
                num=num/16;
    
                if(r==10)
                bin="A"+bin;
    
                else if(r==11)
                bin="B"+bin;
    
                else if(r==12)
                bin="C"+bin;
    
                else if(r==13)
                bin="D"+bin;
    
                else if(r==14)
                bin="E"+bin;
    
                else if(r==15)
                bin="F"+bin;
    
                else
                bin=r+bin;
            }while(num!=0);
    
            return bin;
        }
    
        public int ConvertFromHexadecimalToDecimal(String num){
            int a;
            int ctr=0;
            double prod=0;
    
            for(int i=num.length(); i>0; i--){
    
                if(num.charAt(i-1)=='a'||num.charAt(i-1)=='A')
                a=10;
    
                else if(num.charAt(i-1)=='b'||num.charAt(i-1)=='B')
                a=11;
    
                else if(num.charAt(i-1)=='c'||num.charAt(i-1)=='C')
                a=12;
    
                else if(num.charAt(i-1)=='d'||num.charAt(i-1)=='D')
                a=13;
    
                else if(num.charAt(i-1)=='e'||num.charAt(i-1)=='E')
                a=14;
    
                else if(num.charAt(i-1)=='f'||num.charAt(i-1)=='F')
                a=15;
    
                else
                a=Character.getNumericValue(num.charAt(i-1));
                prod=prod+(a*Math.pow(16, ctr));
                ctr++;
            }
            return (int)prod;
        }
    
        public static void main(String[] args){
    
            Exer5 dh=new Exer5();
            Scanner s=new Scanner(System.in);
    
            int num;
            String numS;
            int choice;
    
            System.out.println("Enter your desired choice:");
            System.out.println("1 - DECIMAL TO HEXADECIMAL             ");
            System.out.println("2 - HEXADECIMAL TO DECIMAL              ");
            System.out.println("0 - EXIT                          ");
    
            do{
                System.out.print("\nEnter Choice: ");
                choice=s.nextInt();
    
                if(choice==1){
                    System.out.println("Enter decimal number: ");
                    num=s.nextInt();
                    System.out.println(dh.ConvertToHexadecimal(num));
                }
    
                else if(choice==2){
                    System.out.println("Enter hexadecimal number: ");
                    numS=s.next();
                    System.out.println(dh.ConvertFromHexadecimalToDecimal(numS));
                }
            }while(choice!=0);
        }
    }
    

提交回复
热议问题