一、把通过键盘录入的阿拉伯数字转换为罗马数字(在进行字符转换时有两种方法:1.定义字符串数组 2.通过switch)
要求:

代码实现:
import java.util.Scanner;
public class NumberConversion {
public static void main(String[] args) {
String str;
StringBuilder sb = new StringBuilder();
while (true) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要转换的字符串:");
str = scanner.next();
boolean falg = checkNumber(str);
if(falg){
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
int number = c - 48;
String conversion = conversion(number);
sb.append(conversion);
}
System.out.println(sb);
break;
}else {
System.out.println("你输入的字符串不符合规矩,请重新输入。");
continue;
}
}
}
public static boolean checkNumber(String str){
if(str.length()>9){
return false;
}
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c<'0'||c>'9'){
return false;
}
}
return true;
}
public static String conversion(int number){
String []arr ={"","I","II", "III","IV","V","VI","VII","VIII","IX"};
return arr[number];
}
public static String conversion2(char number){
String str;
switch (number){
case '0':str="";break;
case '1':str="I";break;
case '2':str="II";break;
case '3':str="III";break;
case '4':str="IV";break;
case '5':str="V";break;
case '6':str="VI";break;
case '7':str="VII";break;
case '8':str="VIII";break;
case '9':str="IX";break;
default:str="";break;
}
return str;
}
}
二、判断两个字符串通过旋转之后是否相同(两种方式:第一种方式:字符串拼接的方式进行的旋转 第二种方式:通过将字符串转换为字符数组方式进行的旋转)
需求:

代码演示:
public class AdjustString {
public static void main(String[] args) {
String strA = "abcde";
String strB = "bcdea";
boolean falg = judgment(strA, strB);
if (falg){
System.out.println("两个字符串通过旋转后相同");
}else{
System.out.println("两个字符串通过旋转后不相同");
}
}
public static String revolve(String str){
String start = str.substring(0, 1);
String end = str.substring(1);
return end+start;
}
public static String revolve2(String str){
char[] arr = str.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;
}
public static boolean judgment(String strA,String strB){
for (int i = 0; i < strA.length(); i++) {
strA= revolve2(strA);
if(strA.equals(strB)){
return true;
}
}
return false;
}
}
三、键盘输入任意字符串进行打乱输出
代码:
import java.util.Random
import java.util.Scanner
public class StringDislocate {
public static void main(String[] args) {
//键盘输入任意字符串,打乱里面内容
Scanner scanner = new Scanner(System.in)
System.out.println("请输入任意的字符串:")
String str = scanner.next()
//把字符串转换为字符数组
char[] chars = str.toCharArray()
Random random = new Random()
//从0索引开始,根一个随机索引进行位置交换
for (int i = 0
int index =random.nextInt(chars.length-1)
char temp = chars[i]
chars[i]=chars[index]
chars[index]=temp
}
//把字符数组再次变回字符串
String result = new String(chars)
System.out.println(result)
}
}
四、验证码(数字位置不在固定为最后一位)
代码:
import java.util.Random
public class Captcha {
public static void main(String[] args) {
//定义一个方法随机产生一个5位数的验证码
//格式为: 长度为5 大写字母或者小写字母跟数字位置随机生成
char[] chars = new char[52]
for (int i = 0
//ASCII码表
if (i <= 25) {
//添加小写字母
chars[i] = (char) (97 + i)
} else {
//添加大写字母
chars[i] = (char) (65 + i - 26)
}
}
//定义一个字符串来记录最后的结果
String result = ""
//随机抽取4次数组中的索引
Random random = new Random()
for (int i = 0
int randomIndex = random.nextInt(chars.length)
result = result + chars[randomIndex]
}
//随机生成一个0~9的数字
int number = random.nextInt(10)
result += number
//把字符串转换为字符数组
char[] ch = result.toCharArray()
//从0索引开始,根一个随机索引进行位置交换
for (int i = 0
int index =random.nextInt(ch.length-1)
char temp = ch[i]
ch[i]=ch[index]
ch[index]=temp
}
//把字符数组再次变回字符串
String result1 = new String(ch)
System.out.println("验证码:" + result1)
}
}
五、通过输入字符串数字进行相乘计算打印的结果依旧为字符串格式
代码:
import java.util.Scanner
public class StringMultiply {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in)
System.out.println("请输入第一个非负数的数字:")
String num1 = scanner.next()
System.out.println("请输入第二个非负数的数字:")
String num2 = scanner.next()
int result = conversion(num1)*conversion(num2)
String str = """ +result + """
System.out.println(str)
}
//把字符串变为字符数组在转换为数字相乘
public static int conversion(String num){
int result = 0
char[] chars = num.toCharArray()
for (int i = 0
char aChar = chars[i]
int ge = aChar - 48
result=(result*10)+ge
}
return result
}
}
六、通过输入字符串中间用空格隔开打印最后输入的字母并计算长度
需求:

代码:
import java.util.Scanner
public class EndWord {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in)
System.out.println("请输入一个字符串每个单词之间用空格隔开:")
String str = scanner.nextLine()
char[] chars = str.toCharArray()
int count = -1
String result = ""
for (int i = chars.length-1
char c = chars[i]
result=c+result
count++
if(chars[i]==' '){
break
}
}
System.out.println("最后一个单词是:"+result+"长度为:"+count)
}
}