zoukankan      html  css  js  c++  java
  • Java String类练习题

    题目:
    1. 给定一个字符串,判断该字符串中是否包含某个子串.如果包含,求出子串的所有出现位置.
    如:"abcbcbabcb34bcbd"中,"bcb"子串的出现位置为: 1,7,12.字符串和子串均由用户输入

    2.给定一个长度,随机产生一个该长度的字符串,由大写,小写字母以及数字组成
    Java中随机数的生成:
    java.util.Random r = new java.util.Random();
    int a = r.nextInt(100): a 0-99的随机数

    3.给定一个由数字组成的字符串,如:"1239586838923173478943890234092",统计
    出每个数字出现的次数

    答案如下:

    package Chp10;
    
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Random;
    import java.util.Scanner;
    import java.util.Set;
    
    public class TestString2
    {
    	public static void Method_One()
    	{
    		
    		Scanner s = new Scanner(System.in);
    		System.out.println("请输入一个父串");
    		String str = s.next();
    		
    		System.out.println("请输入一个子串");
    		String str1 = s.next();
    		
    		int stat = 0;
    		while (true)
    		{
    			int i = str.indexOf(str1,stat);
    			if (i==-1)
    			{
    				break;
    			}
    			System.out.println(i);
    			stat = i+str1.length();
    		}
    		
    	}
    	
    	public static void Method_Two()
    	{
    		System.out.println("请输入一个长度");
    		Scanner s = new Scanner(System.in);
    		int n = s.nextInt();
    		char[] cs = new char[n];
    		
    		Random random = new Random();
    		for (int i = 0; i < n; i++)
    		{
    			int a = random.nextInt(62);
    			if(a>=0 && a<=25)
    			{
    				a+=65;
    			}
    			else if (a>25 && a<=51) 
    			{
    				// 97 - 26 = 71
    				a+=71;
    			}
    			else 
    			{
    				// 52-48 = 4
    				a-=4;
    			}
    			cs[i] = (char)a;
    		}
    		System.out.println(cs);
    	}
    	
    	public  static void  Method_Three()
    	{
    		Scanner scanner = new Scanner(System.in);
    		String string = scanner.next();
    		int[] c = new int[10];
    		for (int i = 0; i < string.length(); i++)
    		{
    			char c1 = string.charAt(i); //48-57
    			int a = c1-48;	// 类型转换
    			c[a]++;
    		}
    		for (int i = 0; i < c.length; i++)
    		{
    			System.out.println(i+" 出现的次数: "+c[i]);
    		}
    		
    		System.out.println("=========方法二==========");
    		String s = "12548954231351486214894562";
    		char[] ch = s.toCharArray();
    		
    		Map<Character, Integer> map = new HashMap<Character, Integer>();
    		Set<Character> set = map.keySet();
    		for (int i = 0; i < ch.length; i++)
    		{
    			if (set.contains(ch[i])) // 判断map中已经有的char值
    			{
    				map.put(ch[i], map.get(ch[i])+1);
    			} else
    			{
    				map.put(ch[i], 1); // 第一次放入map中
    			}
    		}
    		Set<Character> set2 = map.keySet();
    		for (Character character : set2)
    		{
    			System.out.println(character+"=========="+map.get(character));
    		}
    	}
    	
    	public static void main(String[] args)
    	{
    		System.out.println("第一题如下:");
    		Method_One();
    		System.out.println("第二题如下:");
    		Method_Two();
    		System.out.println("第三题如下:");
    		Method_Three();
    	}
    }
    

      

      

  • 相关阅读:
    vue-cli构建的项目手动添加eslint配置
    给通过canvas生成的二维码添加logo
    webpack打包时候去掉console.log配置
    gist.github.com 被墙无法访问解决办法
    axios.js 在测试机ios7.1的iphone4中不能发送http请求解决方案
    linux 系统的7个运行级别
    今天遇到了不能创建mysql函数
    今天测试大商创,遇到了 upstream sent too big header while reading response header from upstream
    mysql5.7 datetime 默认值为‘0000-00-00 00:00:00'值无法创建问题解决
    IE浏览器中判断IE版本
  • 原文地址:https://www.cnblogs.com/IamJiangXiaoKun/p/4639302.html
Copyright © 2011-2022 走看看