(不定期更新中)
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;i<len;i++){
sum += Math.pow(16, 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';
}
}