目录:
1.将数字转换成罗马数字
2.键盘输入任意字符串,打乱里面的内容
3.返回字符串中最后一个单词长度
4.调整A字符串 看是否可与B字符串匹配
一: //键盘录入一个字符串// 长度小于等于9 只能是数字// -将内容变成罗马数字// Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ// 罗马数字中 没有0
将数字 与罗马数字 相对应:
提供两种方法:(查表法)(switch方法)
第一种:
public static String toRome(int len) {String[] rome = {" ","Ⅰ ", "Ⅱ ", "Ⅲ ", "Ⅳ ", "Ⅴ ", "Ⅵ ", "Ⅶ ", "Ⅷ ", "Ⅸ "};//查表法--- 数字跟数据产生一个对应方法return rome[len];}
第二种:
// switch方法 进行匹配
public static String toRomee(int len) {String str1 = switch (len) {case 0 -> " ";case 1 -> "Ⅰ";case 2 -> "Ⅱ";case 3 -> "Ⅲ";case 4 -> "Ⅳ";case 5 -> "Ⅴ";case 6 -> "Ⅵ";case 7 -> "Ⅶ";case 8 -> "Ⅷ";case 9 -> "Ⅸ";default -> "";}; //注意符号return str1;
}
完整代码实现:
public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入一个长度不超过10的数字:");String str;str = sc.next();int len = str.length();boolean flag = cheak(str, len);while (true) {if (flag) {break;} else {System.out.println("输入不符合要求,重新输入!");continue;}}StringBuilder sb = new StringBuilder();for (int i = 0; i < len; i++) {char c = str.charAt(i);int num = c - 48;String n = toRomee(num);sb.append(n);}System.out.println(sb);}// switch方法 进行匹配public static String toRomee(int len) {String str1 = switch (len) {case 0 -> " ";case 1 -> "Ⅰ";case 2 -> "Ⅱ";case 3 -> "Ⅲ";case 4 -> "Ⅳ";case 5 -> "Ⅴ";case 6 -> "Ⅵ";case 7 -> "Ⅶ";case 8 -> "Ⅷ";case 9 -> "Ⅸ";default -> "";};return str1;}public static boolean cheak(String s, int len) {if (len > 9) {return false;}for (int i = 0; i < len; i++) {char c = s.charAt(i);if (c < '0' || c > '9') {return false;}}return true;}
检验结果为:
二:
//键盘输入任意字符串,打乱里面的内容
package test;
import java.util.Random;
import java.util.Scanner;public class messStr {public static void main(String[] args) {Scanner sc=new Scanner(System.in);String s = sc.next();System.out.println(s);char[] arr = s.toCharArray();Random r=new Random();for (int i = 0; i < arr.length; i++) {int ran=r.nextInt(arr.length);//交换char t=arr[i];arr[i]=arr[ran];arr[ran]=t;}//把字符数组 变回 字符串String result = new String(arr);System.out.println("打乱后为:"+result);}
}
检验结果为:
三:
//给一个字符串 有字符 空格隔开 //返回字符串中最后一个单词长度
public class foreach {public static void main(String[] args) {String str="right up my alley";String str2="best advantage";extracted(str);extracted(str2);}private static void extracted(String str) {String s1 = lastS(str);int len1 = s1.length();System.out.println("最后一个单词为:"+s1+" 长度为:"+len1);}public static String lastS(String a){int len = a.length();String s="";for (int i = len-1; i >=0; i--) {char c = a.charAt(i);if(c==' '){break;}else{s=c+s;}}return s;}
}
检验结果为:
四:
//给定两个 字符串A B //A的选择操作 是将A最左边的字符移到 最右边 //若干次调整后 A能变成B 则返回 true //不能匹配成功 则返回 false
// 修改字符串内容————:
//1.用substring的方法 截取,进行拼接等。
//2.把字符串变为字符数组,调整字符数组里面数据,最后再变为字符串。
public class adjustStr {public static void main(String[] args) {//1.定义字符串 //2.调整字符串//3.是否匹配String A = "abcde";String B = "cdabe"; boolean flag = check(A, B);if (flag) {System.out.println("调整过后,可以匹配成功!");} else {System.out.println("不能匹配成功!");}}public static boolean check(String a, String b) {for (int i = 0; i < a.length(); i++) {a = rotate(a);if (a.equals(b)) {return true;}}return false;}public static String rotate(String aa) {char[] arr = aa.toCharArray();char first = arr[0];for (int i = 1; i < arr.length; i++) {arr[i - 1] = arr[i];}arr[arr.length - 1] = first;//利用字符数组 创建一个字符串对象String result = new String(arr);return result;}
}