🍓系列专栏:蓝桥杯
🍉个人主页:个人主页
目录
🍍1.输入身份证,判断性别🍍
🍍2.输入英语句子,统计单词个数🍍
🥝3.加密解密🥝
🌎4.相邻重复子串🌎
🍍1.输入身份证,判断性别🍍
分析:判断性别,只需要判断 倒数第2的奇偶就行
🍭方法1:String.charAt( )
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String idCard=scanner.next();
char sex=idCard.charAt(16);
if(sex=='1'||sex=='3'||sex=='5'||sex=='7'||sex=='9') {
System.out.println("男孩");
}
else System.out.println("女孩");
}
需要注意:String.charAt( ) 是得到的是char类型,进行判断时 需要对数字打单引号。
🍭方法2:char-'0' 可以变成整型
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String idCard=scanner.next();
int sex=idCard.charAt(16)-'0';
if(sex==1||sex==3||sex==5||sex==7||sex==9) {
System.out.println("男孩");
}
else System.out.println("女孩");
}
🍭方法3:
public String substring(int beginIndex, int endIndex)
第一个参数int为开始的索引,对应String数字中的开始位置,
第二个参数是截止的索引位置,对应String中的结束位置
Integer.valueOf() :
Integer. valueOf()可以将基本类型int转换为包装类型Integer,或者将String转换成Integer,String如果为Null或“”都会报错。
int sex=Integer.valueOf(idCard.substring(16, 17));
🍭方法4:
1、 indexOf(String str):
返回指定字符str在字符串中(方法调用者)第一次出现处的起始索引,如果此字符串中没有这样的字符,则返回 -1。
2、indexOf(String str, int index):
返回从 index 位置开始查找指定字符str在字符串中第一次出现处的起始索引,如果此字符串中没有这样的字符,则返回 -1
String sex=idCard.substring(16, 17);
System.out.println("13579".indexOf(sex)==-1?"女孩":"男孩");
🍭方法5:String.contains(String str)
该方法是判断字符串中是否有子字符串。如果有则返回true,如果没有则返回false。
String sex=idCard.substring(16, 17);
System.out.println("13579".contains(sex)?"男孩":"女孩");
🍍2.输入英语句子,统计单词个数🍍
输入一串英语句子,统计单词的个数。
输入:good good study day day up
输出:6
分析:因为句子中间有空格,可以用 Sting.split(" ") 去除空格
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String words=scanner.nextLine();
String arr[]=words.split(" ");
// System.out.println(Arrays.toString(arr));
System.out.println(arr.length);
}
当输入的英语句子中,每个单词之间有多个空格时,就会出现以下情况:
可以用 Sting.split(" +") 来实现去除多个空格:
🥝3.加密解密🥝
题目: a-z进行加密,把每个字符统一 +3 得到密文,请根据密文求出原来的明文(空格和标点符
号请忽略,只考虑小写)
明文:abcdgh adoaj qdjiak
密文:defgjk dgrdm tgmldn
public static void main(String[] args) {
String ming="abcdefghijklmnopqrstuvwxyz";
String miwe="defghijklmnopqrstuvwxyzabc";
Scanner scanner=new Scanner(System.in);
String str= scanner.nextLine().toLowerCase();
int number;
for (int i = 0; i < str.length(); i++) {
char x=str.charAt(i);
if(x>='a'&& x<='z') {
number=ming.indexOf(x);
System.out.print(miwe.substring(number,number+1));
}
else System.out.print(x);
}
}
🌎4.相邻重复子串🌎
题目描述:
如果一个字符串包含两个相邻的重复子串,则称它是“容易的串”,其他串称为“困难的串”。
例如:abcd 是 “困难的串”,abcabc 是“容易的串”, a 是 “困难的串”,cabacab 是 “困难的串”
输入:cabacab 输出:false
输入:abcabcde 输出:true
代码:
public class A {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String str=scanner.nextLine();
System.out.println(isEasy(str));
}
private static boolean isEasy(String str) {
for (int len = 2; len <= str.length(); len=len+2) {
for (int i = 0; i <= str.length()-len; i++) {
String sub=str.substring(i,len+i);
String left=sub.substring(0,len/2);
String right=sub.substring(len/2,len);
if(left.equals(right)) {
return true;
}
}
}
return false;
}
}