Java-字符串练习5
·
练习1:键盘录入任意的字符串,打乱里面的内容
思路:①键盘录入一个字符串
②将字符串转换为数组存储
③利用Random()方法进行随机交换
④转换为字符串
package com.lkbhua.Test;
import java.util.Random;
import java.util.Scanner;
public class test11 {
public static void main(String[] args) {
/*键盘录入任意的字符串,打乱里面的内容*/
// 1、键盘录入任意字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入任意字符串:");
String str = sc.next();
// 2、转换为数组
char[] chs = str.toCharArray();
// 3、打乱里面的内容
Random random = new Random();
for (int i = 0; i < chs.length; i++) {
int index = random.nextInt(chs.length);
char temp = chs[i];
chs[i] = chs[index];
chs[index] = temp;
}
// 4、转回字符串
String newStr = new String(chs);
System.out.println(newStr);
}
}
练习2 可以是小写字母,也可以是大写字母,还可以是数字
规则:长度为5
内容中是四位数母,1位数字
其中数字只有1位,但是可以出现在任意位置
思路:①可以把所有的大小字母放在一个数组中
②从数组中随机的获取4次
③生成一个随机的0-9的数字拼接到最后
④输出结果
package com.lkbhua.Test;
import java.util.Random;
public class test12 {
public static void main(String[] args){
/*练习2: 可以是小写字母,也可以是大写字母,还可以是数字
规则:长度为5
内容中是四位数母,1位数字
其中数字只有1位,但是可以出现在任意位置*/
// 1、把所有的大小字母放在同一个数组当中
char[] chs = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
// 2、创建随机数对象和字符串对象
Random random = new Random();
String str= "";
StringBuilder sb = new StringBuilder();
// 3、随机获取4次
for (int i = 0; i < 4; i++) {
int index = random.nextInt(chs.length);
str = str + chs[index];
}
System.out.println(str);
// 4、随机获取一个数字
int number = random.nextInt(10);
str = str + number;
System.out.println(str);
}
}
练习3 给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也只能用字符串形式表示。
package com.lkbhua.Test;
import java.util.Random;
import java.util.Scanner;
public class test13 {
public static void main(String[] args) {
/*给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,
它们的乘积也只能用字符串形式表示。
字符串只有加操作*/
// 1、输入两个字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数字类型的字符串:");
String num1 = sc.next();
System.out.println("请输入第二个数字类型的字符串:");
String num2 = sc.next();
// 2、把num1和num2变成对应的整数才可以
// 先遍历字符串,得到对应的整数
int n1 = 0;
for (int i = 0; i < num1.length(); i++) {
char c = num1.charAt(i);
n1 = n1 * 10 + (c - '0');
}
int n2 = 0;
for (int i = 0; i < num2.length(); i++) {
char c = num2.charAt(i);
n2 = n2 * 10 + (c - '0');
}
// 3、利用整数进行相乘
int result = n1 * n2;
// 4、把结果变成字符串
String result1 = result + "";
System.out.println(result);
}
}
练习4 给你一个字符串s,由若干单词组成,单词前后用一些字符隔开,
返回字符串最后一个单词的长度。
单词是指仅有字母组成、不包含任何空格字符的最大字字符串。
示例: s=“Hello World” 输出:5
package com.lkbhua.Test;
public class test14 {
public static void main(String[] args) {
/*练习4 给你一个字符串s,由若干单词组成,单词前后用一些字符隔开,
返回字符串最后一个单词的长度。
词是指仅有字母组成、不包含任何空格字符的最大字字符串。
示例: s=“Hello,World” 输出:5*/
// 倒着遍历
// 直到遇见空格,就结束
String s = "Hello World";
int length = 0;
for (int i = s.length() - 1; i >= 0; i--) {
if (s.charAt(i) == ' ') {
break;
}
length++;
}
System.out.println(length);
}
}
声明:
以上均来源于B站@ITheima的教学内容!!!
本人跟着视频内容学习,整理知识引用
更多推荐
所有评论(0)