【Java】字符串编程练习题
前言
日常前言。
本文適合萌新,本文適合萌新,本文適合萌新~~~~
這次share一些Java基本語法的應(yīng)用Demo,是我初學(xué)Java時(shí)候?qū)懙?#xff0c;都是命令行小程序,蠻有紀(jì)念意義的。
這里面的很多程序都做了比較細(xì)致的處理,可能有些方面不那么優(yōu)化,但畢竟是我初學(xué)時(shí)的水平,見諒。
感興趣的Java萌新可以看過來~~
Q1:將輸入的任意0-999的整數(shù)全部補(bǔ)全為三位數(shù)輸出(不足三位補(bǔ)0)
import java.util.Scanner;/*** 將輸入的任意0-999的整數(shù)全部補(bǔ)全為三位數(shù)輸出(不足三位補(bǔ)0)*/ public class StringTest1 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);while (true) {System.out.println("請(qǐng)輸入一個(gè)999以下的非負(fù)整數(shù)");String input = scan.next();try {int judgeNumber = Integer.parseInt(input);if (judgeNumber < 0 || judgeNumber > 999) {System.out.println("輸入不合法");} else if (judgeNumber < 10) {System.out.println("00" + judgeNumber); } else if (judgeNumber < 100) {System.out.println("0" + judgeNumber);} else {System.out.println(judgeNumber);}} catch (NumberFormatException e) {System.out.println(e);}System.out.println("是否退出?Y(不區(qū)分大小寫)/任意輸入");if (scan.next().equalsIgnoreCase("Y")) {break;}}scan.close();}}Q2:輸入一個(gè)手機(jī)號(hào),將中間四位使用星號(hào)替代
import java.util.Scanner;/*** 輸入一個(gè)手機(jī)號(hào),將中間四位使用星號(hào)替代*/ public class StringTest2 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);while (true) {System.out.println("請(qǐng)輸入一個(gè)11位的電話號(hào)碼");//必須long,int會(huì)爆掉String input = scan.next();try {Long.parseLong(input);if (input.length() != 11) {System.out.println("輸入電話號(hào)碼長(zhǎng)度不合法");} else {System.out.println(input.substring(0, 3) + "****" + input.substring(7 ,11));}} catch (NumberFormatException e) {System.out.println("輸入了不合法的字符...\n" + e);}System.out.println("是否退出?Y(不區(qū)分大小寫)/任意輸入");if (scan.next().equalsIgnoreCase("Y")) {break;}}scan.close();} }注意注意注意:手機(jī)號(hào)11位,直接用int會(huì)爆掉,切記切記!
Q3:從命令行輸入兩個(gè)字符串類型的數(shù)值,并計(jì)算輸出的兩個(gè)數(shù)值的和
import java.util.Scanner;/*** 從命令行輸入兩個(gè)字符串類型的數(shù)值,并計(jì)算輸出的兩個(gè)數(shù)值的和*/ public class StringTest3 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);while (true) {System.out.print("請(qǐng)輸入字符串1:\nString1>");var var1 = scan.nextLine();System.out.print("請(qǐng)輸入字符串1:\nString1>"); var var2 = scan.nextLine();try {var var3 = Double.parseDouble(var1);var var4 = Double.parseDouble(var2);System.out.println(var3 + var4);} catch (NumberFormatException e) {System.out.println("輸入非數(shù)值" + e);}System.out.println("是否退出?Y(不區(qū)分大小寫)/其他任意輸入");if (scan.next().equalsIgnoreCase("Y")) {break;} }scan.close();}}Q4:統(tǒng)計(jì)輸入的字符串中’e’的頻數(shù)
import java.util.Scanner;/*** 統(tǒng)計(jì)輸入的字符串中'e'的頻數(shù)*/ public class StringTest4 {public static int getNumber(String var) {int counter = 0;char[] charArray = var.toCharArray();for (char c : charArray) {if (c == 'e') {counter++;}}return counter; }public static void main(String[] args) {System.out.println("請(qǐng)輸入任意的內(nèi)容,輸入exit退出");Scanner scan = new Scanner(System.in);String temp = scan.next();while (!temp.equals("exit")) {System.out.println("'e'出現(xiàn)的頻數(shù)是: " +getNumber(temp));System.out.println("請(qǐng)輸入任意的內(nèi)容,輸入exit退出");temp = scan.next();}scan.close();}}Q5:生成十個(gè)0-100之間的隨機(jī)數(shù),放到數(shù)組中,然后排序輸出
import java.util.Random; import java.util.Arrays; import java.util.Scanner;/*** 生成十個(gè)0-100之間的隨機(jī)數(shù),放到數(shù)組中,然后排序輸出*/ public class StringTest5 {public static void main(String[] args) {Random random = new Random();Scanner scan = new Scanner(System.in);while (true) {int[] array = new int[10];for (int i = 0; i < 10; i++) {array[i] = random.nextInt(101);}//Arrays.sort(array);Arrays.parallelSort(array);for (int i : array) {System.out.print(i + " ");} System.out.println("\n是否退出?Y(不區(qū)分大小寫)/任意輸入");if (scan.next().equalsIgnoreCase("Y")) {break;}}scan.close();}}Q6:分別在控制臺(tái)輸入字符串和子字符串,并計(jì)算字符串中子字符串 出現(xiàn)的次數(shù)
import java.util.Scanner;/*** 分別在控制臺(tái)輸入字符串和子字符串,并計(jì)算字符串中子字符串 出現(xiàn)的次數(shù)*/ public class StringTest7 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.print("請(qǐng)輸入字符串\nMainString>");var mainStr = scan.nextLine();System.out.print("請(qǐng)輸入待檢查的子串\nSubString>");var subStr = scan.nextLine();var mainLengrh = mainStr.length();var subLength = subStr.length();var count = 0;for (var i = 0; i <= mainLengrh - subLength; i++) {if (mainStr.substring(i, i+subLength).equals(subStr)) {count++;}}System.out.println(count);scan.close();} }我怎么這么喜歡這種憨憨的解法???
Q7:統(tǒng)計(jì)輸入的字符串中中文字符、英文字符、0-9數(shù)字字符的分別的個(gè)數(shù)
import java.util.Scanner;/*** 統(tǒng)計(jì)輸入的字符串中中文字符、英文字符、0-9數(shù)字字符的分別的個(gè)數(shù)*/ public class StringTest8 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int chineseCount = 0, engishCount = 0, digitCount = 0, otherCount = 0;while(true) {engishCount = 0;chineseCount = 0;digitCount = 0;otherCount = 0;System.out.print("請(qǐng)輸入待檢查的字符串(輸入exit退出)\nString>");var string = scan.next();if (string.equals("exit")) {break;}for(int i = 0; i < string.length(); i++) {var character = string.charAt(i);if(character >= '0' && character <= '9') {digitCount++;} else if ((character >= 'a' && character <= 'z') || (character >= 'A' && character <= 'Z')) {engishCount++;} else if ((character < '0' && character >= 0) || (character > '9' && character < 'A')|| (character > 'Z' && character < 'a') || (character > 'a' && character <= 127)){otherCount++;}}chineseCount = string.length() - digitCount - engishCount - otherCount;System.out.println("輸入的字符串中:\n中文字符有:" + chineseCount + "個(gè)\n英文字符有"+ engishCount + "個(gè)\n0-9的數(shù)字有" + digitCount + "個(gè)");}scan.close();}}Q8:判斷輸入的數(shù)是不是正讀反讀都一樣的回文數(shù)
import java.util.Scanner;/*** 判斷輸入的數(shù)是不是正讀反讀都一樣的回文數(shù)*/ public class StringTest9 {public static boolean judge(String string1) {//這里用toCharArray()char[] charArray1 = string1.toCharArray();int length = charArray1.length;char[] charArray2 = new char[length];for (int i = 0; i < length; i++) {charArray2[length - i - 1] = charArray1[i];}String string2 = String.valueOf(charArray2);if (string1.equals(string2)) {return true;}return false;}public static void main(String[] args) {Scanner scan = new Scanner(System.in);while(true) {System.out.print("請(qǐng)輸入待檢查的數(shù)字(輸入exit退出)\nNumber>");var string = scan.next();if (string.equals("exit")) {break;}try {Integer.parseInt(string);if (judge(string)) {System.out.println(string + "是回文數(shù)");} else {System.out.println(string + "不是回文數(shù)");}} catch (NumberFormatException e) {System.out.println(e);}}scan.close();}}看看這回文數(shù)寫的,這叫一個(gè)垃圾啊,我真的##¥@%@%!#,我是怎么有勇氣直接發(fā)出來的???
思考題:
解析一個(gè)郵箱地址是否合法,如果合法則打印出用戶名部分和該 郵箱所屬的網(wǎng)站域名,如果郵箱地址不合法則顯示不合法的原因
郵箱地址不合法的因素:
1)郵箱地址中不包含@或.
2)郵箱地址中含有多了@或.
3)郵箱地址中.出現(xiàn)在@的前面
4)用戶名里有其他字符
需要?jiǎng)?chuàng)建一個(gè)類,類名:MailTest,類里面有一個(gè)返回值類型boolean的、名為testmail()的方法。
加油,我暫時(shí)懶得寫題解了,對(duì)不起~~
結(jié)語
這些都是我剛學(xué)Java時(shí)寫的,雖寫的垃圾但也是當(dāng)時(shí)的心血,偶然翻出來就像給萌新分享一下,希望有所幫助吧。
字符串String的使用在Java中太常見了,包括String與StringBuffer、StringBuilder,這些問題是要研究的。
初學(xué)萌新不熟悉的可以看java.lang.String的官方API文檔,繼續(xù)努力吧!
另外,年久失修,或許有bug(理論上應(yīng)該沒啥致命的bug),還請(qǐng)指出。
總結(jié)
以上是生活随笔為你收集整理的【Java】字符串编程练习题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: for循环两个分号之间不要乱加判断条件(
- 下一篇: 用好String、String[]和ch