public class Leecode4 {
public static void main(String[] args) {
//随机生成验证码,5位,4位字母,1位数字,数字可以出现在任意位置
char []arr = new char[53];
Random sc = new Random();
for (int i = 0; i < arr.length; i++) {
if (i < 26) {
arr[i] = (char) (97 + i);
}
if (i >= 26 && i <=51) {
arr[i] = (char) (65 + i - 26);
}
if(i==52){
int number =sc.nextInt(10);
arr[i] = (char) (48 +number);
}
}
//将数组拼好,前四位字母,最后一位数字
StringBuilder sb =new StringBuilder();
for (int i = 0; i < 4; i++) {
int index1 =sc.nextInt(52);
sb=sb.append(arr[index1]);
}
String str = sb.append(arr[52]).toString();
String result = randomIndex(str);
System.out.println(result);
}
public static String randomIndex(String str){
char[] c = str.toCharArray();
Random sc = new Random();
int index =sc.nextInt(c.length);
char temp;
for (int i = 0; i < c.length; i++) {
temp=c[i];
c[i]=c[index];
c[index]=temp;
}
String newArr = new String(c);
return newArr;
}
}
思路2:随机生成5个字母,然后随机一位索引改成数字
public class Leecode4Case2 {
public static void main(String[] args) {
//定义字母数组
char []arr = new char[52];
Random sc = new Random();
for (int i = 0; i < arr.length; i++) {
if (i < 26) {
arr[i] = (char) (97 + i);
}else {
arr[i] = (char) (65 + i - 26);
}
}
//拼接纯字母组合
StringBuilder sb =new StringBuilder();
for (int i = 0; i < 5; i++) {
int index = sc.nextInt(52);
sb=sb.append(arr[index]);
}
//定义随机数字索引,将随机一位字母改为数字
int numberIndex = sc.nextInt(5);
int number = sc.nextInt(10);
//将stringbuilder转为string转为char数组
char[] newArr = sb.toString().toCharArray();
newArr[numberIndex]=(char)(48+number);
String str = new String(newArr);
System.out.println(str);
}
}
public class leecode6 {
public static void main(String[] args) {
//num1、num2均用字符串表示,乘积也用字符串表示
String num1 ="256";
String num2 ="16";
int number1 = method(num1);
int number2 = method(num2);
int numResult = number1 * number2;
String result =new StringBuilder().append(numResult).toString();
System.out.println(result);
}
//字符串变为整数
public static int method(String num){
char[] arr = num.toCharArray();
int result =arr[0]-48;
for (int i = 1; i < arr.length; i++) {
int number = arr[i] - 48;
result=result*10+number;
}
return result;
}
}
public class Leecode7 {
public static void main(String[] args) {
String str ="Hello DuanDuan EE";
StringBuilder sc =new StringBuilder();
for (int i = str.length()-1; i >= 0; i--) {
char c = str.charAt(i);
if (c==' '){
break;
}else {
sc=sc.append(c);
}
}
String strEnd = sc.reverse().toString();
System.out.println("解释:最后一个单词是长度为"+strEnd.length()+"的"+strEnd);
}
}
方法2:用索引找到最大空格索引位,加1,然后对字符串substring该索引
public class Leecode7Case2 {
public static void main(String[] args) {
String str ="Hello DuanDuan EE";
String strEnd = str.substring(findIndex(str));
System.out.println("解释:最后一个单词是长度为"+strEnd.length()+"的"+strEnd);
}
//用索引找到最大空格,然后substring
public static int findIndex(String str){
char[] arr = str.toCharArray();
int index = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i]==32){
index=i;
}
}
return index+1;
}
}