十六进制字符串转换成十进制非负整数

东软学习小组成员:夜枫

题目

输入一个以#结束的字符串,滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,输出该字符串并将其转换为十进制数后输出。
输入格式:
输入在一行中给出一个不超过80个字符长度的、以#结束的非空字符串。
输出格式:
第1行中输出已滤去所有非十六进制字符的字符串。 在第2行中输出转换后的十进制数。题目保证输出结果在长整型范围内。
输入样例:
-zy1+Ak0-bq?#
输出样例:
1A0b
6667

代码:


package PTA练习;

import org.jsoup.helper.StringUtil;//pta上无法编译会错误,因为其无法引入Jsoup包

import java.util.ArrayList;
import java.util.Scanner;

public class 删掉非十六进制 {
    static void swp(String str){
        System.out.println(Long.parseLong(str,16));

    }
   static void clect(String str){
        int len=str.length();
       ArrayList<Character> str1 = new ArrayList<>();

       for(int i=0;i<len;i++){
            if((str.charAt(i)>='0'&&str.charAt(i)<='9')||(str.charAt(i)>='a'&&str.charAt(i)<='e')||
                    (str.charAt(i)>='A'&&str.charAt(i)<='E')) {
                str1.add(str.charAt(i));
                System.out.print(str.charAt(i));
            }
        }
       System.out.println(str1);
       String str2= StringUtil.join(str1, "");//将str1集合转换为字符串,不用分隔;
       System.out.println(str2);
       System.out.println(Long.parseLong(str2,16));//将16进制的str2换后为10进制,并且输出
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //String str=sc.nextLine();
        String str="-zy1+Ak0-bq?#";
        clect(str);
//        char[] arr={'a','b','c'};
//
//        String string =String.copyValueOf(arr);
//
//        System.out.println(string);          //abc
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值