前言

日常前言。

本文适合萌新,本文适合萌新,本文适合萌新~~~~
这次share一些Java基本语法的应用Demo,是我初学Java时候写的,都是命令行小程序,蛮有纪念意义的。
这里面的很多程序都做了比较细致的处理,可能有些方面不那么优化,但毕竟是我初学时的水平,见谅。
感兴趣的Java萌新可以看过来~~

Q1:将输入的任意0-999的整数全部补全为三位数输出(不足三位补0)

import java.util.Scanner;/*** 将输入的任意0-999的整数全部补全为三位数输出(不足三位补0)*/
public class StringTest1 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);while (true) {System.out.println("请输入一个999以下的非负整数");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(不区分大小写)/任意输入");if (scan.next().equalsIgnoreCase("Y")) {break;}}scan.close();}}

Q2:输入一个手机号,将中间四位使用星号替代

import java.util.Scanner;/*** 输入一个手机号,将中间四位使用星号替代*/
public class StringTest2 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);while (true) {System.out.println("请输入一个11位的电话号码");//必须long,int会爆掉String input = scan.next();try {Long.parseLong(input);if (input.length() != 11) {System.out.println("输入电话号码长度不合法");} else {System.out.println(input.substring(0, 3) + "****" + input.substring(7 ,11));}} catch (NumberFormatException e) {System.out.println("输入了不合法的字符...\n" + e);}System.out.println("是否退出?Y(不区分大小写)/任意输入");if (scan.next().equalsIgnoreCase("Y")) {break;}}scan.close();}
}

注意注意注意:手机号11位,直接用int会爆掉,切记切记!

Q3:从命令行输入两个字符串类型的数值,并计算输出的两个数值的和

import java.util.Scanner;/*** 从命令行输入两个字符串类型的数值,并计算输出的两个数值的和*/
public class StringTest3 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);while (true) {System.out.print("请输入字符串1:\nString1>");var var1 = scan.nextLine();System.out.print("请输入字符串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("输入非数值" + e);}System.out.println("是否退出?Y(不区分大小写)/其他任意输入");if (scan.next().equalsIgnoreCase("Y")) {break;}    }scan.close();}}

Q4:统计输入的字符串中’e’的频数

import java.util.Scanner;/*** 统计输入的字符串中'e'的频数*/
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("请输入任意的内容,输入exit退出");Scanner scan = new Scanner(System.in);String temp = scan.next();while (!temp.equals("exit")) {System.out.println("'e'出现的频数是: " +getNumber(temp));System.out.println("请输入任意的内容,输入exit退出");temp = scan.next();}scan.close();}}

Q5:生成十个0-100之间的随机数,放到数组中,然后排序输出

import java.util.Random;
import java.util.Arrays;
import java.util.Scanner;/*** 生成十个0-100之间的随机数,放到数组中,然后排序输出*/
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(不区分大小写)/任意输入");if (scan.next().equalsIgnoreCase("Y")) {break;}}scan.close();}}

Q6:分别在控制台输入字符串和子字符串,并计算字符串中子字符串 出现的次数

import java.util.Scanner;/*** 分别在控制台输入字符串和子字符串,并计算字符串中子字符串 出现的次数*/
public class StringTest7 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.print("请输入字符串\nMainString>");var mainStr = scan.nextLine();System.out.print("请输入待检查的子串\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:统计输入的字符串中中文字符、英文字符、0-9数字字符的分别的个数

import java.util.Scanner;/*** 统计输入的字符串中中文字符、英文字符、0-9数字字符的分别的个数*/
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("请输入待检查的字符串(输入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 + "个\n英文字符有"+ engishCount + "个\n0-9的数字有" + digitCount + "个");}scan.close();}}

Q8:判断输入的数是不是正读反读都一样的回文数

import java.util.Scanner;/*** 判断输入的数是不是正读反读都一样的回文数*/
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("请输入待检查的数字(输入exit退出)\nNumber>");var string = scan.next();if (string.equals("exit")) {break;}try {Integer.parseInt(string);if (judge(string)) {System.out.println(string + "是回文数");} else {System.out.println(string + "不是回文数");}} catch (NumberFormatException e) {System.out.println(e);}}scan.close();}}

看看这回文数写的,这叫一个垃圾啊,我真的##¥@%@%!#,我是怎么有勇气直接发出来的???

思考题:

解析一个邮箱地址是否合法,如果合法则打印出用户名部分和该 邮箱所属的网站域名,如果邮箱地址不合法则显示不合法的原因
邮箱地址不合法的因素:
1)邮箱地址中不包含@或.
2)邮箱地址中含有多了@或.
3)邮箱地址中.出现在@的前面
4)用户名里有其他字符
需要创建一个类,类名:MailTest,类里面有一个返回值类型boolean的、名为testmail()的方法。
加油,我暂时懒得写题解了,对不起~~

结语

这些都是我刚学Java时写的,虽写的垃圾但也是当时的心血,偶然翻出来就像给萌新分享一下,希望有所帮助吧。
字符串String的使用在Java中太常见了,包括String与StringBuffer、StringBuilder,这些问题是要研究的。
初学萌新不熟悉的可以看java.lang.String的官方API文档,继续努力吧!
另外,年久失修,或许有bug(理论上应该没啥致命的bug),还请指出。

【Java】字符串编程练习题相关推荐

  1. java编程基础素数实验报告,JAVA 基础编程练习题1 (输出素数)

    JAVA 基础编程练习题1 (输出素数) JAVA 基础编程练习题1 (输出素数) 题目:判断 101-200 之间有多少个素数,并输出所有素数. 程序分析:判断素数的方法:用一个数分别去除 2 到 ...

  2. java基础编程练习题--兔子生兔子问题

    java基础编程练习题--兔子生兔子问题 题目要求 题目分析 java代码示例 输出结果 题目要求 现有一对兔子,每一对兔子每个月都会生一对小兔子,小兔子在月龄达到第三个月开始每个月就可以生一对,兔子 ...

  3. 这些java基础编程练习题你都会了吗?

    很多人在自学java的时候看一遍视频,感觉就会了,课后并没有大量的练习来巩固当前所学的知识点,今天给大家整理了一些非常具有代表意义的题. Java基础类型题 1.反转一个只有3位数的整数. 从控制台输 ...

  4. java字符串编程_java字符串抉择

    下面我们就字符串连接方面分析. 1.String 打开String的源码,如图所示 会发现存储字符串的字符数值是final常量.再看St final修饰的属性为常量(值不可改变),要么在声明的同时赋值 ...

  5. java 字符串编程题,JAVA 基础编程练习题7 【程序 7 处理字符串】

    7 [程序 7 处理字符串] 题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 程序分析:利用 while 语句,条件为输入的字符不为'\n'. package cskaoya ...

  6. java 字符串编程题_Java编程题——在一个字符串中查找第一个非重复的字符

    编写一个Java程序来查找一个字符串中第一个非重复的字符,这是在编程测试中很常见的一个问题,因为字符串处理在程序员面试中是一个普遍的话题.面试前最好是准备好一些熟知的编程问题,例如使用递归反转字符串, ...

  7. 梁勇 java教材 编程练习题 第二章 2.6 键盘 读取一个在0 到 9999 之间的整数,并将该整数的各位数字相加。...

    import java.util.Scanner; /*** 需求:从键盘输入任意0~9999之间的整数,输出这个整数各位数字之和.* 思路:方法一,使用扫描器Scanner类,扫描控制台输入流* 将 ...

  8. Java入门编程练习题

    题目来源:LeetCode 文章目录 杨辉三角 删除排序数组中的重复项 最后一个单词的长度 加一 爬梯子 合并两个有序数组 删除排序链表中的重复元素 相同的树 对称二叉树 二叉树的层次遍历-正/反序 ...

  9. java经典编程练习题_Java经典练习题_Day03

    一.选择 B    D(死循环)    E(switch)    BC 二.编程 1.读入一个整数,表示一个人的年龄. 如果小于6岁,则输出"儿童", 6岁到13岁,输出" ...

最新文章

  1. 国民认证科技有限公司助力构建我国可信网络空间
  2. Kubernetes(1) kubectl 入门
  3. vuel路由间通讯_vue嵌套路由之间的通信(非vuex方法实现)
  4. 增强使用功能的Steam开源工具箱一枚
  5. css selector list
  6. Directx11教程(19) 画一个简单的地形
  7. 生成excel表格并下载
  8. Halcon - 测量 - 轮廓到线的距离
  9. 认识探头(一) (转)
  10. react实现全选和反选_全选的实现
  11. 屏幕小于6英寸的手机_vivo新机成最轻薄手机?6.56英寸屏幕,重量仅178g
  12. 软设考试成绩查询结果
  13. html日期判断程序,javascript – HTML5日期验证
  14. Docker 基本操作 镜像操作 -- docker镜像命令
  15. 3-1 Aruba交换机实用配置-VSF 2020
  16. duilib开发(十):动态添加控件
  17. 闲鱼一直不确认收货怎么办?
  18. Freemarker数字格式化总结
  19. Titan XP值不值?一文教你如何挑选深度学习GPU
  20. c语言求解线性方程组ax=b,用C语言求解N阶线性矩阵方程Ax=b的简单解法

热门文章

  1. 浅谈内存映射I/O(MMIO)与端口映射I/O(PMIO)的区别
  2. 【PHP】月末・月初の出力方法
  3. WGZX:javaScript 学习心得--1
  4. 什么是简单的分析SQL注入漏洞
  5. Linux下Vim工具常用命令
  6. Sql Server RowNumber和表变量分页性能优化小计
  7. 究竟哪种取数据的方式最快?
  8. nagios常见问题
  9. Linux centOS 硬盘分区挂载
  10. chown -r oracle:oinstall /oracle,CentOS7安装Oracle12c图文详解