1.一道招银2020提前批笔试算法题,大意为:
从键盘输入一组字符串,将其中的数字转化为大写字母,其余不变。要求当不写其它算法时,该过程可逆;
要求:先写出算法实现思想5分,再编写代码5分
import java.util.Scanner;
/**
* 从键盘输入一组字符串,将其中的数字转化为大写字母,其余不变。要求当不写其它算法时,该过程可逆;
*/
public class Char_TransTo {
public static void main(String[] args) {
System.out.println("请输入字符,并用空格隔开");
Scanner scanner=new Scanner(System.in);
String arr=scanner.nextLine();
char [] c=arr.toCharArray();
String b=charTrans(c);
System.out.println(b);
}
static String charTrans(char []arr){
String a = "";
for(int i=0;i<arr.length;i++){
if(arr[i]>'0'&&arr[i]<'9'){
a=a+((char)((int)arr[i]%26+(int)'A')+" ");
}else{
a=a+arr[i]+" ";
}
}
return a;
}
}
2.再追加一个字符串大小写转换实例
该记忆的ascII表对应的三个字母 '0'---->48 A------>65 a--------->97
public class Test {
public static void main(String[] args) {
String str = "5gh3z3t";
StringBuffer s = new StringBuffer();
int i;
for(i = 0; i <= str.length()-1;i ++){
char ch;
//通过str.charAt(i)遍历出字符串中每个字符
if(str.charAt(i) >= 'a' && str.charAt(i) <= 'z'){//判断字符是否在a-z之间(小写)
ch = (char) (str.charAt(i)-32); //小写则转换大写 }else if(str.charAt(i) >= 'A' && str.charAt(i) <= 'Z'){
ch = (char) (str.charAt(i)+32); //大写转小写
}else if(str.charAt(i)>='0'&&str.charAt(i)<='9'){
ch = str.charAt(i); //数字不变
}else {
ch = '*'; //其他则转为*号
}
sb.append(ch); //将字符追加到s序列
}
System.out.println(s.toString()); //将StringBuffer转换为String类型
}
}