Java第七章作业

(1)

public class test
{
	
	public static int get_num(String a,char key) {
		int num=0;
		for (int i = 0; i < a.length(); i++) {
			if(a.charAt(i)==key) ++num;
		}
		return num;
		
	}
	public static void main(String[] args){
		
		System.out.println(get_num(args[0],'a'));
	}
}

(2)

package Test;

import java.util.ArrayList;
import java.util.Scanner;


public class test
{
	public static int get_sum(ArrayList<String> al) {
		//获取字母个数
		int sum=0;
		for(String a:al)
			for (int i = 0; i < a.length(); i++)
				if(Character.isLowerCase(a.charAt(i))||Character.isUpperCase(a.charAt(i)))
					++sum;
		return sum;
		
	}
	public static void get_dig(ArrayList<String> al) {
		//找到所有的数字串并逐行
		for(String a:al) {
			for (int i = 0; i < a.length(); i++) {
				boolean flag=false;
				while(i < a.length()&&Character.isDigit(a.charAt(i)))
				{
					System.out.print(a.charAt(i));
					flag=true;
					++i;
				}
				if(flag) System.out.println("");
			}
		}
		
	}
	public static void change(ArrayList<String> al,String x,String nx) {
		//将所有的the改为a 
		for(String a:al) {
			a=a.replaceAll(x, nx);
			System.out.println(a);
		}
		
	}
	public static void main(String[] args){
		Scanner  sc = new Scanner(System.in);
		ArrayList<String>aList = new ArrayList<String>();//记得new
		
		while(true) {
			String xString=sc.next();
			if(xString.equals("end")) break;
			aList.add(xString);
		}
		
		System.out.println("共计:"+get_sum(aList)+"个字母");
		System.out.println("其中的数字串有:");
		get_dig(aList);
		System.out.println("将所有the变为a的结果为:");
		change(aList,"the","a");
		sc.close();
	}
}

(4)

package Test;

public class test
{
	public static double Spilt(String s)
	{
		//逐行输出单词并计算平均字母数
		String[]ss = s.split(" ");
		int cnt=ss.length,sum=0;
		for(String x:ss) {
			System.out.println(x);
			sum+=x.length();
		}
		return (double)sum/cnt;
	}
	public static double Spilt(char[] s)
	{
		//逐行输出单词并计算平均字母数
		int cnt=0,sum=0;
		for (int i = 0; i < s.length; i++) {
			while(i<s.length&&s[i]!=' ') {
				System.out.print(s[i++]);
				++sum;
			}
			System.out.println("");
			++cnt;
		}
		return (double)sum/cnt;
	}
	public static void main(String[] args){
		String s = "Java is an Object Oriented programming language";
		char[] c = s.toCharArray();
		
		double aves=Spilt(s);
		System.out.println("平均字母数为:"+aves);
		
		double avec = Spilt(c);
		System.out.println("平均字母数为:"+avec);
	}
}


(5)

package Test;

import java.sql.Array;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;

public class test
{
	
	public static int randomNum(int min, int max) {
		//产生[ min , max ] 的随机数
        Random random = new Random();
        return random.nextInt(max-min+1) + min;//nextInt(n)生成[0,n)的随机数
    }
	public static void main(String[] args){
		Set<Integer> hs = new HashSet<Integer> ();
		while(hs.size()<20) 
			hs.add(randomNum(20, 80));
		StringBuffer string=new StringBuffer("");
		boolean flag=false;
		for(Integer x:hs) {
			if(flag) string.append(",");
			string.append(Integer.toString(x));
			flag= true;
		}
		
		System.out.println(string);
		String[] ssStrings = string.toString().split(",");
		Arrays.parallelSort(ssStrings);
		
		for(String x:ssStrings) 
			System.out.println(x);
	}
}


P111
分为子串重叠不重叠两种

package Test;

import java.util.Scanner;

public class test
{
	public static int get_num(String s,String p) {
		//获得p在s中出现的次数
		int cnt=0;
		for(int pos=0;pos<s.length();)
		{
			pos=s.indexOf(p, pos);
			if(pos==-1) break;
			++cnt;
			pos+=p.length();//如果+p,length代表子串不重叠计数
			// pos +=1;//如果写成加1代表子串可重叠计数
		}
		return cnt;
	}
	public static void main(String[] args){
		Scanner scanner = new Scanner(System.in);
		String s = scanner.next();
		String p = scanner.next();
		System.out.println(p+" 在 "+s+" 中出现:"+get_num(s, p)+"次");
		scanner.close();
	}
}

P109思考

package Test;

import java.util.HashMap;
import java.util.Scanner;

public class test
{
	static HashMap<String, String>mp1= new HashMap<String, String>();//中文转英文
	static HashMap<String, String>mp2= new HashMap<String, String>();//英文转中文
	
	static{
		mp1.put("好", "good");
		mp2.put("good", "好");
		mp1.put("坏", "bad");
		mp2.put("bad", "坏");
		mp1.put("工作", "work");
		mp2.put("work", "工作");
	}
	public static void check(String s) {
		if(mp1.containsKey(s)) {
			System.out.println("中文转英文结果为:"+mp1.get(s));
		}
		else if(mp2.containsKey(s)) {
			System.out.print("英文转中文结果为:"+mp2.get(s));
		}
		else {
			System.out.println("此单词未收录");
		}
			
		
	}
	public static void main(String[] args){
		Scanner scanner = new Scanner(System.in);
		String xString = scanner.next();
		check(xString);
		scanner.close();
	}
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值