StringJoiner
StringJoiner,可以看成一个容器,创建之后里面的内容是可变的
StringJoiner sj = new StringJoiner("---");
sj.add("aaa").add("bbb").add("ccc");
System.out.println(sj);
StringJoiner sj = new StringJoiner(",","[","]");
sj.add("aaa").add("bbb").add("ccc");
System.out.println(sj);
StringJoiner sj = new StringJoiner(",","[","]");
sj.add("aaa").add("bbb").add("ccc");
int len = sj.length();
System.out.println(len);
System.out.println(sj);
String str = sj.toString();
System.out.println(str);
public StringJoiner(间隔符号) 创建一个StringJoiner对象,指定拼接时的间隔符号
public StringJoiner(间隔符号,开始符号,结束符号) 创建一个StringJoiner对象,指定拼接时的间隔符号、开始符号、结束符号
public StringJoiner add(添加内容) 添加数据,并返回对象本身
public int length() 返回长度(字符出现的个数)
public String toString() 返回一个字符串(该字符串就是拼接之后的结果)
转换罗马数字
键盘录入一个字符串
要求1:长度为小于等于9
要求2:只能是数字
将内容变成罗马数字
package one;
import com.sun.source.tree.ContinueTree;
import java.util.Scanner;
public class first {
public static void main(String[] args) {
String str;
while (true) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符");
str = sc.next();
boolean flag = checkStr(str);
if(flag){
break;
}else {
System.out.println("字符串不符合规则,请重新输入");
continue;
}
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
int number = c - 48;
String s = changeL(number);
sb.append(s);
}
System.out.println(sb);
}
public static String changeL(int number){
String[] arr = {"","I","II","III","IV","V","VI","VII","VIII","IX"};
return arr[number];
}
public static boolean checkStr(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;
}
}
调整字符串
给定两个字符串,A和B。
A的旋转操作就是将A最左边的字符移动到最右边
例如,若A=‘abcde’,在移动一次之后结果就是‘bcdea’,如果在若干次调整操作之后,A能变成B,那么返回True,如果不能匹配成功,则返回false
package one;
import com.sun.source.tree.ContinueTree;
import java.util.Scanner;
public class first {
public static void main(String[] args) {
String strA = "abcde";
String strB = "cdeab";
boolean result = check(strA,strB);
System.out.println(result);
}
public static boolean check(String strA,String strB){
for (int i = 0; i < strA.length(); i++) {
strA = rotate(strA);
if(strA.equals(strB)){
return true;
}
}
return false;
}
public static String rotate(String str) {
String s1 = str.substring(0, 1);
String s2 = str.substring(1);
String s3 = s2 + s1;
return s3;
}
}
打乱字符串
键盘输入任意字符串,打乱里面的内容
package one;
import java.util.Random;
import java.util.Scanner;
public class first {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串");
String str = sc.next();
char[] arr = str.toCharArray();
char[] chr = new char[1];
Random random = new Random();
for (int j = 0; j < str.length(); j++) {
int i = random.nextInt(str.length() - 1);
chr[0] = arr[i];
arr[i] = arr[j];
arr[j] = chr[0];
}
String result = new String(arr);
System.out.println(result);
}
}
生成验证码
可以是小写字母,也可以是大写字母,还可以是数字
规则:
长度为5
内容中是四位字母,1位数字
其中数字只有1位,但是可以出现在任意的位置
package one;
import java.util.Random;
public class first {
public static void main(String[] args) {
char[] arr = new char[52];
char c = 65;
char b = 97;
for (int i = 0; i < 26; i++) {
arr[i] = c ;
arr[i + 26] = b;
c++;
b++;
}
char[] pdd = new char[5];
Random rd = new Random();
for (int i = 0; i < 4; i++) {
int j = rd.nextInt(arr.length - 1);
char d = arr[j];
pdd[i] = arr[j];
}
char k = (char) rd.nextInt(48,57);
pdd[4] = k;
char[] cdd = new char[1];
int w = rd.nextInt(4);
cdd[0] = pdd[w];
pdd[w] = pdd[4];
pdd[4] = cdd[0];
System.out.println(pdd);
}
}
字符串练习
给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示位字符串形式
package one;
public class first {
public static void main(String[] args) {
String num1 = "123456";
String num2 = "1234";
int num = 0;
int number = 0;
int s1 = num1.length();
int s2 = num2.length();
for (int i = 0; i < num1.length(); i++) {
int k = num1.charAt(i) - '0';
num = (int) (num + Math.pow(10, s1 - i - 1) * k);
}
System.out.println(num);
for (int i = 0; i < num2.length(); i++) {
int j = num2.charAt(i) - '0';
number = (int) (number + Math.pow(10,s2 - i - 1)*j);
}
System.out.println(number);
int sum = num * number;
String sum1 = sum + "";
System.out.println(sum1);
}
}
字符串练习
给你一个字符串s,由若干单词组成,单词前后用一些空格字符隔开,返回字符串中最后一个单词的长度
package one;
public class first {
public static void main(String[] args) {
String s = "fly me to the moon";
int j = 0;
for (int i = s.length(); i > 0; i--) {
if(i == s.length()){
String s1 = s.substring(i);
System.out.println(s1);
}else {
String s1 = s.substring(i,i+1);
if(s1.equals(" ")){
break;
}
j++;
}
}
System.out.println(j);
}
}
Tips
以上学习内容均来自于B站黑马程序员