字符串习题

荒凉一梦 提交于 2020-02-13 01:04:06

1、在这里插入图片描述

/*
在字符串中获取字符的方法
第一种方法:
String str="gaganoig";
char c=str.charAt(3);
System.out.println(c);//结果 a 这种方法得到的是char类型的数据
第二种方法:
String str="gaganoig";
String c=str.substring(3,4);
System.out.println(c);//结果 a 这种方法得到的是String类型的数据 
数据:用户输入的密码
指令:提示用户输入一个密码  判断密码是否有效   输出
步骤:
1、提示用户输入一个密码
2、判断密码是否有效  有效就输出Valid password 无效就输出Invalid password
*/
import java.util.Scanner;
class ProblemFour{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        //1、提示用户输入一个密码
        System.out.print("请输入密码:");//cipher密码
        String cipher=scanner.nextLine();
        if(isCipher(cipher)){//2、判断密码是否有效  有效就输出Valid password 无效就输出Invalid password
            System.out.println("是一个有效密码");
        }else{
            System.out.println("不是有效密码");
        }
    }
    public static boolean isCipher(String cipher){
        int i=0;//字符个数
        int j=0;//数字个数
        boolean k=false;//存返回值
        while(true){
            char c=cipher.charAt(i);
            if(c>='0'&&c<='9'){
                j+=1;
                i+=1;
            }else if(c>='a'&&c<='z'||c>='A'&&c<='Z'){
                i+=1;
            }else{
                break;
            }
            if(i>cipher.length()-1){
                break;
            }
        }
        if(i>=8&&j>=2){
            k=true;
        }
        return k;
    }
}

运行结果

请输入密码:12ds1221
是一个有效密码
请输入密码:123/12343d
不是有效密码

2、在这里插入图片描述

/*
数据:用户输入的字符串str  用户输入的字符a 字符出现的次数
指令:提示用户输入一个字符串str  提示用户输入需要查找次数的字符a  调用方法count得到str中a出现的次数
步骤:
1、提示用户输入字符串
2、提示用户输入字符
3、调用count方法并输出次数
*/
import java.util.Scanner;
class ProblemEight{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        //1、提示用户输入字符串
        System.out.print("请输入字符串:");
        String str=scanner.nextLine();
        //2、提示用户输入字符
        System.out.print("请输入一个字符:");
        String str1=scanner.nextLine();
        char a=str1.charAt(0);
        //3、调用couont方法并输出次数
        System.out.println(str+" 中'"+a+"'出现了 "+count(str,a)+" 次" );
    }
    public static int count(String str,char a){
        int c=0;//存字符出现次数
        for(int i=0;i<=str.length()-1;i++){
            char d=str.charAt(i);
            if(d==a){
                c+=1;
            }
        }
        return c;
    }
}

运行结果

请输入字符串:51324
请输入一个字符:3
51324'3'出现了' 1
请输入字符串:1324wdfgewr63gfsadh/'[]hj[k
请输入一个字符:[
1324wdfgewr63gfsadh/'[]hj[k 中'['出现了 2

3、在这里插入图片描述

/*
数据:用户输入的字符串str   字符串的反序str1
指令:提示用户输入一个字符串  调用reverseStr方法 输出字符串反序
步骤:
1、提示用户输入一个字符串
2、调用reverseStr方法,并输出字符串的反序
*/
import java.util.Scanner;
class ProblemNine{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        //1、提示用户输入一个字符串
        System.out.print("Enter a string:  ");
        String str=scanner.nextLine();
        System.out.println("The reversed string is "+reversedStr(str));
    }
    public static String reversedStr(String str){
        String str1=str.substring(str.length()-1);
        for(int i=str.length()-2;i>=0;i--){
            str1=str1.concat(str.substring(i,i+1));
        }
        return str1;
    }
}

运行结果

Enter a string:  asdhf289779
The reversed string is 977982fhdsa

4、在这里插入图片描述

/*
数据:输入的字符串  大写字母的个数
指令:提示用户输入字符串   调用函数计算字符串中大写字母的个数  输出大写字母的个数
步骤:
1、提示用户输入字符串
2、调用bigNumber()方法计算大写字母个数并输出
*/
import java.util.Scanner;
class ProblemTen{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        //1、提示用户输入字符串
        System.out.print("Enter a string:");
        String str=scanner.nextLine();
        //2、调用bigNumber()方法计算大写字母个数并输出
        System.out.println("The number of uppercase is "+bigNumber(str));
    }
    public static int bigNumber(String str){
        int a=0;
        for(int i=0;i<str.length()-1;i++){
            if(str.charAt(i)>='A'&&str.charAt(i)<='Z'){
                a+=1;
            }
        }
        return a;
    }
}

运行结果

Enter a string:KSJDFH34928757sdfjhjg983\'[;;[;';
The number of uppercase is 6

5、在这里插入图片描述

/*
数据:用户输入的两个字符串str1和str2  最长前缀
指令:提示用户输入两个字符串  调用prefix()方法  输出最长前缀
步骤:
1、提示用户输入两个字符串
2、调用prefix()方法求最长前缀;并输出
*/
import java.util.Scanner;
class ProblemEleven{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        //1、提示用户输入两个字符串
        System.out.print("Enter the first string: ");
        String str1=scanner.nextLine();
        System.out.print("Enter the second string: ");
        String str2=scanner.nextLine();
        //2、调用prefix()方法求最长前缀;并输出
        prefix(str1,str2);
    }
    public static void prefix(String str1,String str2){
        if(str1.charAt(0)!=str2.charAt(0)){
            System.out.println("Atlanta and Macon have no common prefix");
            return;
        }
        int i;
        for(i=1;i<str1.length()-1&&i<str2.length()-1;i++){
            if(str1.charAt(i)!=str2.charAt(i)){
                break;
            }
        }
        System.out.println("The common prefix is "+str1.substring(0,i));
    }
}

运行结果

Enter the first string: qwetr  jiu
Enter the second string: qwetr  jok;./']
The common prefix is qwetr  j

6、在这里插入图片描述

/*
数据:用户输入的十六进制的数  十六进制转换得到的十进制的数
指令:提示用户输入十六进制的数  调用函数hexToDecimal()计算十进制的值 输出十进制的值
步骤:
1、提示用户输入十六进制的数
2、调用函数hexToDecimal()计算十进制的值 并输出十进制的值
*/
import java.util.Scanner;
class ProblemTwelve{
    public static void main(String[] args){
        Scanner scanenr=new Scanner(System.in);
        //1、提示用户输入十六进制的数
        System.out.print("请输入十六进制的数 ");
        String hex=scanenr.nextLine();
        //2、调用函数hexToDecimal()计算十进制的值 并输出十进制的值
        System.out.println(hex+" 的十进制值为: "+hexToDecimal(hex));
    }
    public static int hexToDecimal(String hex){
        int a=0;
        for(int i=0;i<hex.length();i++){
            if(hex.charAt(i)>='0'&&hex.charAt(i)<='9'){
                a=a+((int)(hex.charAt(i)-'0'))*(int)(Math.pow(16,hex.length()-1-i));
            }else if(hex.charAt(i)>='A'&&hex.charAt(i)<='F'){
                a=a+((int)(hex.charAt(i)-'A'+10))*(int)(Math.pow(16,hex.length()-1-i));
            }
        }
        return a;
    }
}

运行结果

请输入十六进制的数 AB8C
AB8C 的十进制值为: 43916
请输入十六进制的数 AB12
AB12 的十进制值为: 43794
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!