周末作业
1、编写一个程序,实现从命令行参数输入两个字符串类型的数值,并计算输出两个数值的和。 [必做题]
HomeWork01.java
package com.kd.homework;
public static void main(String[] args) {
System.out.println(Integer.parseInt(args[0])+Integer.parseInt(args[1]));
}
2、编写一个程序,实现从命令行参数输入一字符串,统计该字符串中字符“e”出现的次数。(识点:String中常用的方法) [必做题]
HomeWork02java
package com.kd.homework;
import java.util.Scanner;
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
char[] arr=str.toCharArray();
int num=0;
for (char c : arr) {
if(c=='e'){
num++;
}
}
System.out.println(num);
}
3、生成十个0~100之间的随机数,放到数组中,然后排序输出。(知识点:Math类取整,获得随机数等) [必做题]
HomeWork03.java
import java.math.MathContext;
import java.util.Arrays;
public static void main(String[] args) {
int[] x=new int[10];
for(int i=0;i<x.length;i++){
x[i]=(int)(Math.random()*101);
}
Arrays.sort(x);
for (int i : x) {
System.out.println(i);
}
}
4、巴黎时间比北京时间晚7个小时,纽约时间比北京时间晚12个小时,试编写一程序,根据输入的北京时间输出相应的巴黎和纽约时间。[选做题]
HomeWork04.java
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public static void main(String[] args) {
/*
* Scanner scanner = new Scanner(System.in); String time =
* scanner.nextLine();
*/
Date date = new Date();
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年/MM月/dd日/kk点");
String time = sdf.format(date);
cal.setTime(date);
System.out.println("北京时间是:" + time);
// 巴黎
cal.add(Calendar.HOUR_OF_DAY, -7);
System.out.println("巴黎时间是:" + cal.get(Calendar.YEAR) + "年/" + (cal.get(Calendar.MONTH) + 1) + "月/"
+ cal.get(Calendar.DAY_OF_MONTH) + "日/" + cal.get(Calendar.HOUR_OF_DAY) + "点");
// 纽约
cal.add(Calendar.HOUR_OF_DAY, -5);
System.out.println("纽约时间是:" + cal.get(Calendar.YEAR) + "年/" + (cal.get(Calendar.MONTH) + 1) + "月/"
+ cal.get(Calendar.DAY_OF_MONTH) + "日/" + cal.get(Calendar.HOUR_OF_DAY) + "点");
}
5、解析一个邮箱地址是否合法,如果合法则打印出用户名部分和该邮箱所属的网站域名,如果邮箱地址不合法则显示不合法的原因 [选做题]
2.1 提示:邮箱地址不合法的因素:
2.1.1邮箱地址中不包含@或.
2.1.2邮箱地址中含有多了@或.
2.1.3邮箱地址中.出现在@的前面
2.1.4用户名里有其他字符
2.2实现步骤:
2.2.1创建一个类,类名:mailtest
类图如下:
HomeWork05.java
import java.util.Scanner;
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
String regex="\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
if(str.matches(regex)==true){
System.out.println("合法");
}else{
System.out.println("不合法");
}
}
6、分别在控制台输入字符串和子字符串,并计算字符串中子字符串出现的次数。 [选做题]
HomeWork06.java
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String s1=sc.nextLine(); //字符串
String s2=sc.nextLine(); //子字符串
Pattern p=Pattern.compile(s2);
Matcher m=p.matcher(s1);
int count=0;
while(m.find()){
count++;
}
System.out.println(count);
}
7、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 [选做题]
HomeWork07.java
import java.util.Scanner;
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
char[] c=str.toCharArray();
StringBuilder zhongwen=new StringBuilder();
StringBuilder yingwen=new StringBuilder();
StringBuilder shuzi=new StringBuilder();
for (char d : c) {
if(d>='0' && d<='9')
{
shuzi.append(d);
}
else if((d>='a' && d<='z') || (d>='A' && d<='Z'))
{
yingwen.append(d);
}
else
{
zhongwen.append(d);
}
}
System.out.println("中文字符个数为:"+zhongwen.length()+"\r\n"+"英文字符个数为:"+yingwen.length()+"\r\n"
+"数字字符个数为:"+shuzi.length());
}
8、有一种数叫回文数,正读和反读都一样,如12321便是一个回文数。编写一个程序,从命令行得到一个整数,判断该数是不是回文数。 [选做题]
HomeWork08.java
import java.util.Scanner;
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str=sc.next();
String str2=new StringBuilder(str).reverse().toString();
if(str.equals(str2)){
System.out.println("是回文数");
}else{
System.out.println("不是回文数");
}
}