Discuss / Java / 初级难度

初级难度

Topic source

。。。

#1 Created at ... [Delete] [Delete and Lock User]
package com.test1127;

import java.util.Deque;
import java.util.LinkedList;

/**
 * @ClassName : test1127
 * @Description : test1127
 * @Author : YangJiuZhou
 * @Date: 2022-11-27 11:47
 */
public class StackDecimalToHex1127 {
    public static void main(String[] args) {
            String hex = toHex(12500);
            if (hex.equalsIgnoreCase("30D4")) {
                System.out.println("测试通过");
            } else {
                System.out.println("测试失败");
            }
        }

        static String toHex(int n) {
        //在java中利用双端队列来实现stack栈
            Deque<Integer> s = new LinkedList<>();
        //创建一个StringBuilder为之后的字符串拼接做准备
            StringBuilder s1 = new StringBuilder();
        //判断余数为零和除数都为零时才停止循环
            while (n%16!=0 || n/16!=0){
                s.push(n%16);
                n = n/16;
            }
        //判断LinkedList是否为空,不为空则一直pop()出元素
            while (!s.isEmpty()){
                int s2 = s.pop();
                if(s2 == 10 ){
                    s1.append("A");
                }else if(s2 == 11){
                    s1.append("B");
                }else if(s2 == 12){
                    s1.append("C");
                }else if(s2 == 13){
                    s1.append("D");
                }else if(s2 == 14){
                    s1.append("E");
                }else if(s2 == 15){
                    s1.append("F");
                }else if(s2 == 16){
                    s1.append("E");
                }else {
                    s1.append(s2);
                }
            }
            //将StringBuilder转换为String对象返回
            String s3 = s1.toString();

            return s3;
        }
    }

  • 1

Reply