笔试面试题汇总---4月

  (不定期更新中)

1. 字符串分割

题目描述

  • 连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
  • 长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

输入描述:

连续输入字符串(输入2次,每个字符串长度小于100)

输出描述:

输出到长度为8的新字符串数组

输入例子:

abc
123456789

输出例子:

abc00000
12345678
90000000

程序:

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){        
            String s1 = new String(sc.nextLine());
            String s2 = new String(sc.nextLine());
            splitSpring(s1);
            splitSpring(s2);
        }
    }
    public static void splitSpring(String aa){
        if(aa.length()%8 !=0 )
            aa = aa + "00000000";

        while(aa.length()>=8){
            System.out.println(aa.substring(0, 8));
            aa = aa.substring(8);
        }
    }
}

2. 进制转换

题目描述

写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )

输入描述:

输入一个十六进制的数值字符串。

输出描述:

输出该数值的十进制字符串。

输入例子:

0xA

输出例子:

10

程序1:

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        while (sc.hasNext()){
            String str=sc.next().substring(2);
            System.out.println(Integer.parseInt(str,16));
        }
    }
}  

程序2:

public class Main {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while(scan.hasNext()){
            String num = scan.next();
            if(!num.substring(0, 2).equals("0x")){
                return;
            }
            int len = num.length();
            int sum = 0;
            for(int i=2;i16, len-i-1)*re(Character.toUpperCase(num.charAt(i)));
            }
            System.out.println(sum);
        }
    }
    public static int re(char s){
        switch (s){
        case 'A':  return 10;
        case 'B':  return 11;
        case 'C':  return 12;
        case 'D':  return 13;
        case 'E':  return 14;
        case 'F':  return 15;
        }
        return s-'0';
    }
}

你可能感兴趣的:(java笔试面试题)