字串相關題幹:

歲月沉沒島嶼發表於2021-01-01

題目1:

根據以下需求,用程式碼實現
1.程式執行後通過鍵盤錄入一個字串。要求字串中必須包含:大寫字母
2.如果錄入的字串中沒有大寫字母、要進行給出提示。然後程式可以繼續錄入字串
3.如果錄入的字串中有大寫字母。那麼統計這個字串中小寫字母、大寫字母、數字、其他字元出現的個數。程式結束
例如:
請輸入一個字串:
123456abc
您輸入的字串中沒有大寫字母。請重新輸入:
ABC456ghi$%^&D
大寫字母有:4個
小寫字母有:3個
數字有:3個
其他字元有:4個

package Work5;

import java.util.Scanner;

public class Str{
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int big=0;
        int smi=0;
        int num=0;
        int a=0;
        while (true) {
            System.out.println("請輸入一個字串");
            String str1 = sc.next();
            char[] chars = str1.toCharArray();
            if (method(chars)) {
                for (int i = 0; i < chars.length; i++) {
                    if(chars[i]>='A'&&chars[i]<='Z'){
                        big++;
                    }else if(chars[i]>='a'&&chars[i]<='z'){
                        smi++;
                    } else if(chars[i]>='0'&&chars[i]<='9'){
                        num++;
                    }else {
                        a++;
                    }
                }
           break;
            }else {
                System.out.println("沒有大寫字母,請重新輸入");
            }
        }
        System.out.println("大寫字母有:"+big);
        System.out.println("小寫字母有:"+smi);
        System.out.println("數字字母有:"+num);
        System.out.println("其它字母有:"+a);
        }
        public static boolean method(char[] arr){
            for (int i = 0; i < arr.length; i++) {
                if(arr[i]>='A'&&arr[i]<='Z'){
                    return true;
                }

                }

            return false;
        }

    }

題目2:

遍歷下列字串,篩選出其中的數字和字母並按照數字在前字母在後的規則組成一個新的字串,把組成的新字串列印在控制檯。

public class Str {
    public static void main(String[] args) {
        String str1="csdfsg98498gv4s4gs64gss54vsd";
        char[] chars = str1.toCharArray();
        String num="";
       String a="";
        for (int i = 0; i < chars.length; i++) {
            if(chars[i]>='0'&&chars[i]<='9'){
                num+=chars[i];

            }
            if(chars[i]>='a'&&chars[i]<='z'){
                a+=chars[i];
            }

題目3:

請定義一個方法用於判斷一個字串是否是對稱的字串,並在主方法中測試方法。例如:“abcba”、"上海自來水來自海上"均為對稱字串。

package Work4;


public class Str {
    public static void main(String[] args) {
        String str = "打死你死打";
        System.out.println(getMethod(str));
        ;
    }

    public static boolean getMethod(String str) {
        StringBuilder sb = new StringBuilder(str);
        String s = sb.reverse().toString();
        if (str.equals(s)) {
            return true;
        }
        
        return false;
    }
}

題目4:

自定義一個方法,讓使用者輸入一個“QQ號碼”,在方法中判斷這個QQ號碼是否合法。

String qq;

驗證規則:

  1. 號碼長度必須是5—12位數字;

  2. 首位不能是0;1-9

後面的數字 0-9

 package Work4;

public class Str {
    public static void main(String[] args) {
        String str = "762092597";
        System.out.println(isQq(str));
        ;
    }

    public static boolean isQq(String str) {
        int s = str.length();
        if (s < 5 || s > 12) {
            return false;
        }
        char[] chars = str.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            if (chars[0] < '1' || chars[0] > '9') {
                return false;
            }

        }
        for (int i = 1; i < chars.length; i++) {
            if (chars[i] < '0' || chars[i] > '9') {
                return false;
            }

        }
        return true;

    }
}

題目5:

鍵盤輸入兩個字串,一個長,一個短,求短字串在長字串中出現的次數。

舉例:

abc字串在abcdefgabckbsdffabc字串中出現了 3

replace(“abc”,"");

package Work4;

import java.util.Scanner;

public class Str{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入一個長的字串");
        String str2 = sc.next();
        System.out.println("請輸入一個短的字串");
        String str3 = sc.next();
        String[] arr = str2.split(str3);
        int i = arr.length - 1;
        System.out.println("字串中出現了" + i + "次");

    }
}

題目6:

定義方法,獲取一個包含4個字元的字串驗證碼,每一位字元是隨機選擇的字母和數字,可包含a-z,A-Z,0-9。
例如:aX3v
1 建立一個StringBuilder sb物件, 遍歷a-z 遍歷A-Z 遍歷0-9 把每一個字元 新增到StringBuilder 物件
2 sb for迴圈4次,獲取一個隨機數(返回是0到sb的長度)作為索引
3 用sb的charAt根據索引 獲取一個

package Work4;

import java.util.Random;

public class Str {
    public static void main(String[] args) {
        method();
    }
    public static void method() {
        StringBuilder sb=new StringBuilder();
        Random ra=new Random();
        StringBuilder sb2=new StringBuilder();
        for (char i = 'a'; i <= 'z'; i++) {				//新增a-z
            sb.append(i);
        }for (char i = 'A'; i <='Z'; i++) {				//新增A-Z
            sb.append(i);
        }for (int i = 0; i <=9; i++) {					//新增0-9
            sb.append(i);
        }

        for (int i = 0; i < 4; i++) {
            int num= ra.nextInt(sb.length())+1;				//獲取sb長度範圍內的4個隨機數作為索引
            char c = sb.charAt(num);						//根據索引將獲得對應位置資料
            sb2.append(c);								//將獲得對應位置資料新增到sb2中
        }
        String s = sb2.toString();
        char[] chars = s.toCharArray();
        for (int i = 0; i < chars.length; i++) {			//遍歷sb2
            System.out.print(chars[i]);
        }

    }
}

題目6;

我國的居民身份證號碼,由由十七位數字本體碼和一位數字校驗碼組成。請定義方法判斷使用者輸入的身份證號碼是否合法,並在主方法中呼叫方法測試結果。
規則為:號碼為18位,不能以數字0開頭,最後一位可以是數字或者大寫字母X,前17位只可以是數字。

package Work4;

public class Str {
    public static void main(String[] args) {
        String str = "41152419980723405X";
        System.out.println(method(str));

    }

    public static boolean method(String str) {
        int s = str.length();
        char[] chars = str.toCharArray();
        if (s > 18 || s < 18) {                     //號碼不為18位,
            return false;
        }
        for (int i = 0; i < chars.length; i++) {

            if (chars[0] < '0' && chars[0] > '0') {    //不能以數字0開頭
                return false;
            }
        }
        for (int i = 1; i < chars.length - 1; i++) {

            if (chars[i] < '0' && chars[i] > '9') {

                return false;
            }
        }
        for (int i = 0; i < chars.length; i++) {
            if (i == 17) {
                if (chars[i] == 'X') {
                    return true;
                } else if (chars[i] >= '0' && chars[i] <= '9') {
                    return true;
                } else {
                    return false;
                }
            }
        }
        return true;
    }
}

相關文章