计算出字符串每种字符的个数

java求字符串每种字符的个数

学习内容:

1、 java的数组 2、 String类

学习产出:

package com.wyzhaojun;
/*
 * 求字符串每个字符的个数
 */
public class CharNum {
    
    
	public static void main(String[] args) {
    
    
//		String str="nevinenj  在";
		String str="csnicn  南城街道***";
		//字符串去重
		String result=removeRepeatChar(str);
		//定义一个二维数组存放字符和数量
		char[][]results=charCount(str,result);
		print(results);
	}
	private static void print(char[][] results) {
    
    
		int len=results[0].length;
		for(int i=0;i<len;i++) {
    
    
			System.out.print(results[0][i]+" ");
			System.out.println((int)results[1][i]);
		}
	}
	private static char[][] charCount(String str, String result) {
    
    
	int resultlen=result.length();	
	int strlen=str.length();	
	//定义一个二维数组
	char[][] results=new char[2][resultlen];
	//第一行填充字符
		for(int i=0;i<resultlen;i++) {
    
    
			results[0][i]=result.charAt(i);
		}
		//第二行计数
		for(int i=0;i<resultlen;i++) {
    
    
			results[1][i]=0;
			for(int j=0;j<strlen;j++) {
    
    
				if(results[0][i]==str.charAt(j)) {
    
    
					results[1][i]++;
				}
			}
		}
		return results;
	}
//字符串去重
	 public static String removeRepeatChar(String str) {
    
    
		 // write code here
	    	StringBuffer sb=new StringBuffer();
	    	for(int  i=0;i<str.length();i++) {
    
    
	    		//依次拿出每一个字符
	    		char c=str.charAt(i);
	    		//该字符的第一个索引位置和最后一个索引位置相同,表示只出现一次
	    		if(str.indexOf(c)==str.lastIndexOf(c)) {
    
    
	    			sb.append(c);
	    		}else {
    
    //该字符的第一个索引位置和最后一个索引位置不同
	    			if(str.indexOf(c)==i) {
    
    
	    				sb.append(c);
	    			}
	    		}
	    	}
	    	String result=new String(sb);
	    	return result;
	 }
}

猜你喜欢

转载自blog.csdn.net/xiaozhaozai/article/details/120338216