目录:
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;
}
}