日常前言。
本文适合萌新,本文适合萌新,本文适合萌新~~~~
这次share一些Java基本语法的应用Demo,是我初学Java时候写的,都是命令行小程序,蛮有纪念意义的。
这里面的很多程序都做了比较细致的处理,可能有些方面不那么优化,但毕竟是我初学时的水平,见谅。
感兴趣的Java萌新可以看过来~~
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();
}
}
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会爆掉,切记切记!
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();
}
}
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();
}
}
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();
}
}
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();
}
}
我怎么这么喜欢这种憨憨的解法???
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();
}
}
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),还请指出。