2018年12月15/16日

周末课后作业

1、编写一个程序,实现从命令行参数输入两个字符串类型的数值,并计算输出两个数值的和。

import java.util.Scanner;

public class Sum {
    public static void main(String[] args) {
        System.out.println("请输入两个字符串类型的数值……");
        Scanner in = new Scanner(System.in);
        String str1 = in.next();
        String str2 = in.next();
        Sum(str1,str2);
    }
    public static void Sum(String str1,String str2){
        int x = Integer.parseInt(str1);
        int y = Integer.parseInt(str2);
        int sum = x+y;
        System.out.println(x+"与"+y+"两个数值的和为"+sum);
    }
}

2、编写一个程序,实现从命令行参数输入一字符串,统计该字符串中字符“e”出现的次数。

import java.util.Scanner;

public class Count {
    public static void main(String[] args) {
        System.out.println("请输入一个字符串");
        Scanner in = new Scanner(System.in);
        String str = in.next();
        Count(str);
    }

    public static void Count(String str){
        String str2 = "";
        int sum = 0;

        for(int i = 0;i<str.length();i++){
            if(str.charAt(i) == 'e'){
                sum++;
            }
        }
        System.out.println("字符串\""+str+"\"中有"+sum+"个e字符");
    }
}

3、生成十个0~100之间的随机数,放到数组中,然后排序输出。


import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

   public class 随机数组排序 {
   public static void main(String[] args) {
	  Scanner input = new Scanner(System.in);
	  Random r = new Random();
	  int[] arr = new int[10];

      for(int i = 0;i<10;i++){
         arr[i] =  (int) Math.round(Math.random()*100);
      }
   
       Arrays.sort(arr);
     
       for(int i = 0;i<arr.length;i++){
         System.out.print(arr[i]+" ");
      }	 		
   }
}

4、解析一个邮箱地址是否合法,如果合法则打印出用户名部分和该邮箱所属的网站域名,如果邮箱地址不合法则显示不合法的原因

4.1 提示:邮箱地址不合法的因素:

4.1.1邮箱地址中不包含@或.
4.1.2邮箱地址中含有多了@或.
4.1.3邮箱地址中.出现在@的前面
4.1.4用户名里有其他字符

4.2实现步骤:

4.2.1创建一个类,类名:mailtest

类图如下:

在这里插入图片描述

	import java.util.Scanner;
	public class Email {
	    public static void main(String[] args) {
	        System.out.println("请输入一个邮箱地址……");
	        Scanner input = new Scanner(System.in);
	        String str = input.nextLine();

	        if(Mail(str) == true){

	        }else{
	            System.out.println("不合法");
	        }

	    }
	 public static boolean Mail(String str){
	        boolean b = true;
	        if(str.indexOf('@') == -1 || str.indexOf('.') == -1){
	            System.out.println("邮箱地址中不包含@或.");
	            return  false;
	        }
	        if(str.indexOf('@') != str.lastIndexOf('@') ||str.indexOf('.') != str.lastIndexOf('.')){
	            System.out.println("邮箱地址中含有多了@或.");
	            return false;
	        }
	        if(str.lastIndexOf('@') > str.indexOf('.')){
	            System.out.println("邮箱地址中.出现在@的前面");
	            return false;
	        }
	            for(int i = 0;i<str.indexOf('@');i++){
	                char c = str.charAt(i);
	                if( (c>=4&&c<=57) || (c>=65&&c<=90) || (c>=97&&c<=122) ){

	                }else{
	                    System.out.println("用户名里有其他字符");
	                    return false;
	                }
	            }

	            String[] array = str.split("@");
	            System.out.println("用户名为:"+array[0]);
	            System.out.println("该邮箱所属的网站域名为"+array[1]);

	            return true;    
	    }
	}

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

import java.util.Scanner;

public class 字符串出现次数 {
    public static void main(String[] args) {
        System.out.println("请输入一个字符串");
        Scanner in = new Scanner(System.in);
        String str = in.next();
        System.out.println("请输入需要统计的子字符串");
        String str1 = in.next();

        String str2 = " ";
        int sum = 0;

        for(int i = 0;i<str.length();i++){
            if(str.charAt(i) == str1.charAt(0)){
                for(int j = i;j<str1.length();j++){
                    str2 = str2 + str.charAt(j);
                }
                sum++;
                i=i+str2.length()-1;
            }
        }
        System.out.println("字符串\""+str+"\"中有"+sum+"个\""+str1+"\"");
    }
}

6、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。

public class 各字符个数 {

public static void main(String[] args) {
	
	char[] c = { '6', '7', 's', 'k', '4', '数', '字' };
	int z = 0;
	int s = 0;
	int y = 0;
	
	for (char x : c) {
	switch ((int) x / 10) {
		case 4:
			s++;
			break;
		case 5:
			s++;
			break;
		case 6:
			y++;
			break;
		case 7:
			y++;
			break;

		case 8:
			y++;
			break;
		case 9:
			y++;
			break;
		case 10:
			y++;
			break;
		case 11:
			y++;
			break;
		case 12:
			y++;
			break;
		default:
			z++;
		}

	System.out.println("数字字符有" + s);
	System.out.println("英文字符有" + y);
	System.out.println("中文字符有" + z);
        }
   }
 }

7、有一种数叫回文数,正读和反读都一样,如12321便是一个回文数。编写一个程序,从命令行得到一个整数,判断该数是不是回文数。

public class 回文数 {
	import java.util.Scanner;
	
	public class huiwenshu {
	    public static void main(String[] args) {
	        System.out.println("请输入一个数……");
	        Scanner input = new Scanner(System.in);
	        int num = input.nextInt();

	        if(MyNum(num)==true){
	            System.out.println(num+"是回文数");
	        }else{
	            System.out.println(num+"不是回文数");
	        }
	    }
	    public static boolean huiwenshu(int num){

	        String str = String.valueOf(num);
	        boolean b = true;

	        for(int i = 0,j = str.length()-1;i<str.length()/2 ;i++,j--){
	            if(str.charAt(i) != str.charAt(j) ){
	                b = false;
	                break;
	            }
	        }
	        return b;
	    }
	}

8、巴黎时间比北京时间晚7个小时,纽约时间比北京时间晚12个小时,试编写一程序,根据输入的北京时间输出相应的巴黎和纽约时间。

package javademo1;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class Test6 {
    public static void main(String[] args) throws ParseException {
    	String s = "2018-12-17 15:19:42"; 		 
//   	System.out.println("请按照如下格式输入日期(yyyy-MM-dd HH:mm:ss)");
//    	Scanner input = new Scanner(System.in);
//    	String s = input.nextLine();
    	SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    	
    	Date date = f.parse(s);//转成日期对象
    	Calendar c = Calendar.getInstance();//执行计算机的时间
    	c.setTime(date);//输入的时间
    	c.add(Calendar.HOUR, -7);
    	
    	String s2 = f.format(c.getTime());//将日期格式化成指定的串
        System.out.println("巴黎时间为:"+s2);
        
        c.setTime(date);
        c.add(Calendar.HOUR, -12);
        String s3 = f.format(c.getTime());//将日期格式化成指定的串
        System.out.println("纽约时间为:"+s3);
}
}

输出结果:
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值