JAVA程序中如何输出一个字符串中相同字符的个数 Java中判断字符串中相同字符的个数
JAVA\u7a0b\u5e8f\u4e2d\u5982\u4f55\u8f93\u51fa\u4e00\u4e2a\u5b57\u7b26\u4e32\u4e2d\u76f8\u540c\u5b57\u7b26\u7684\u4e2a\u6570public class Test {public static void main(String[] args) {//\u8981\u64cd\u4f5c\u7684\u5b57\u7b26\u4e32String str = "afsldjfladfbfasbfkaj";//\u5c06\u5b57\u7b26\u4e32\u8f6c\u6362\u4e3abyte\u6570\u7ec4byte[] bytes = str.getBytes();//\u5916\u5faa\u73af\uff0c\u6309\u4e0b\u6807\u987a\u5e8f\u53d61\u4e2afor(int i = 0;i < bytes.length;i++){//\u5b9a\u4e49\u4e00\u4e2a\u53d8\u91cf\u4fdd\u5b58\u8fd9\u4e2a\u5b57\u7b26\u51fa\u73b0\u7684\u6b21\u6570int count = 0;//\u5185\u5faa\u73af\uff0c\u5c06\u5916\u5faa\u73af\u53d6\u51fa\u7684\u5b57\u7b26\u62ff\u6765\u548c\u6574\u4e2a\u6570\u7ec4\u6bd4\u5bf9for(int j = 0;j < bytes.length;j++){//\u5982\u679c\u4e00\u6837if(bytes[i] == bytes[j]){//\u51fa\u73b0\u6b21\u6570+1count++;}}//\u56e0\u4e3abyte\u7c7b\u578b\u8f93\u51fa\u662fASCII\u7801\uff0c\u6240\u4ee5\u5f3a\u8f6c\u4e3achar\u7c7b\u578bchar c = (char)bytes[i];//\u8f93\u51fa//\u4e00\u5b9a\u662f\u5728\u5185\u5faa\u73af\u7ed3\u675f\u540e\u8f93\u51fa\uff0c\u8fd9\u6837\u4e0b\u6b21\u5916\u5faa\u73af\u5f00\u59cb\u4ee5\u540ecount\u5c31\u4f1a\u6e05\u96f6System.out.println(c + " \u6709 " + count + " \u4e2a ");}}}
for(char c:cs){charMap.put((charMap.get('c'))==0?1:charMap.get('c')+1);}}//\u6253\u5370map\u96c6\u5408\u4e2d\u7684\u7684\u6570\u636epublic static void printCharCount(Map<char,int map){char [] cs=map.getKeys();for(char c:cs){int x=map.get(c);System.out.println("\u5b57\u7b26\u662f"+c+"\u7684\u5b57\u6bcd\u5171\u6709"+x+"\u4e2a");}}//main\u65b9\u6cd5public static void main(String [] args){CountChar.printCharCount(CountChar.count("asssadz"));}}\u8ffd\u95ee\uff1aMAP\u505a\u7684\u8bdd\u4e0d\u7528\u8fd9\u4e48\u9ebb\u70e6\u7684\u4ee3\u7801\uff1aSystem.out.println("\u8bf7\u8f93\u5165\u5b57\u7b26\u4e32\uff1a");Scanner input = new Scanner(System.in);String str = input.next();Map map = new HashMap();for(int i = 0;i<str.length();i++){String text = str.substring(i,i+1);
JAVA程序中如何输出一个字符串中相同字符的个数,代码如下:
import java.util.HashMap;
import java.util.Map;
public class TestC {
public static void main(String[] args){
//要统计字符个数的字符串
String str="abcdeab";
//每个字符和个数都存放在集合中,
Map<Character,Integer> map=new HashMap<Character,Integer>();
//遍历字符串
for(int x=0;x<str.length();x++){
//获取字符
char c=str.charAt(x);
//判断该字符是否存在集合
if(map.get(c)==null){
//不存在就存进去
map.put(c, 1);
}else{
//存在了就加一
int count= map.get(c)+1;
map.put(c, count);
}
}
//输出每个字符的出现次数
System.out.println(map);
}
}
输出结果:
{d=1, e=1, b=2, c=1, a=2}
详细代码如下:
package com.week27.tranning01;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
public class SameChar {
public static void main(String[] args) {
//通过键盘录入任意字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入任意一个字符串:");
//再将字符串转换为数组arr
char[] str = sc.nextLine().toCharArray();
//设置一个map集合用来进行统计Character代表字符 Integer代表数量
Map<Character,Integer> map = new HashMap<Character,Integer>();
//使用value 和 Key的对应 关系来取得 重复的有多少个
for (char c : str) {
Integer count = map.get(c);
if(count==null){
//如果是第一次出现则value值为1
map.put(c, 1);
}else{
//如果不是第一次出现则++value
map.put(c,++count);
}
}
//将map 使用迭代器导出
Iterable<Entry<Character,Integer>> entry = map.entrySet();
for (Entry<Character, Integer> s : entry) {
System.out.println(s.getKey()+"有"+s.getValue()+"个");
}
}
}
可以调用:
public String[] split(String regex,int limit)根据匹配给定的正则表达式来拆分此字符串。 此方法返回的数组包含此字符串的子字符串,每个子字符串都由另一个匹配给定表达式的子字符串终止,或者由此字符串末尾终止。数组中的子字符串按它们在此字符串中出现的顺序排列。如果表达式不匹配输入的任何部分,那么所得数组只具有一个元素,即此字符串。 limit 参数控制模式应用的次数,因此影响所得数组的长度。如果该限制 n 大于 0,则模式将被最多应用 n - 1 次,数组的长度将不会大于 n,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。如果 n 为非正,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。如果 n 为 0,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。 如:String str = "_ _ _ _ _ _ _ _ _";int num = str.split("_", -1).length - 1;
用string下面的split方法就行了。伪代码如下:string[] a = string.split(new char('_')),会把字符串拆分成以_分隔的几个字符串_的个数就是数组a.length-1,第3个前面的么就是a[3]
两次遍历加上charAt(i)方法可以实现统计~~~
绛旓細鍦↗ava涓紝鑻ラ渶杈撳叆涓涓瓧绗︼紝鍙互閫氳繃Scanner绫诲疄鐜銆備互涓嬫槸璇︾粏鐨勬楠わ細棣栧厛锛屼綘闇瑕佸垱寤轰竴涓猄canner瀵硅薄锛屽皢鐢ㄦ埛鐨勮緭鍏ヨ繛鎺ュ埌绋嬪簭锛屼緥濡傦細1.閫氳繃浠ヤ笅浠g爜鍒涘缓Scanner瀵硅薄锛歋cannersc=newScanner(System.in);鐒跺悗锛岃皟鐢⊿canner瀵硅薄鐨刵ext()鏂规硶鏉ヨ幏鍙栫敤鎴疯緭鍏ョ殑瀛楃涓诧紝鎺ョ潃灏嗗叾瀛樺偍鍦ㄤ竴涓猄tring绫诲瀷鐨勫彉閲...
绛旓細1锛庡厛鍒涘缓涓涓猄canner瀵硅薄 2锛庤皟鐢⊿canner瀵硅薄鐨刵ext()鏂规硶鑾峰彇鎺у埗鍙拌緭鍏ワ紝杩斿洖鐨勬槸涓涓猄tring绫诲瀷,鍥犱负娌℃湁nextChar()鏂规硶 3锛庤皟鐢⊿tring鐨刢harAt(0)鏂规硶鑾峰彇绗涓涓瓧绗 Scanner sc = new Scanner(System.in);String s = sc.next();char c = s.charAt(0);
绛旓細浣犲彲浠ュ厛璇诲叆涓涓瓧绗︿覆锛岀劧鍚庡彇涓涓瓧绗︺傚鏋滆澶氭璇诲叆涓涓瓧绗︼紝鍙互鐢ㄤ竴涓惊鐜緷娆¤鍙銆備緥濡傦細package konw.test1;import java.util.Scanner;public class InputTest{ public static void main(String[] args) { Scanner input = new Scanner(System.in); char c; String s = ...
绛旓細java鐢╳hile鐩存帴杈撳叆绗竴娆¤緭鍑轰竴涓瓧绗︼紝绗簩娆¤緭鍑2涓瓧銆1銆佽幏鍙栧彉閲忕殑鍒濆鍊兼墦鍗板惊鐜綋锛氭墽琛宨++锛歩=1銆2銆佺浜屾寰幆锛氬垽鏂惊鐜潯浠讹細i<3鎴愮珛鎵撳嵃寰幆浣搃锛氭墽琛宨++锛歩=2銆
绛旓細鍙互閫氳繃鈥漇canner鈥滃嚱鏁 鐩存帴杈撳叆鍙傛暟鐨勫舰寮忥紝鏉ュ疄鐜拌緭鍏ヨ鍙锛屼妇渚嬶細import java.util.Scanner;public class Test { public static void main(String[] args) { Scanner input=new Scanner(System.in);System.out.println("璇疯緭鍏ヤ竴涓暣鏁帮細");int length=input.nextInt();//杈撳叆涓涓暣鏁 System....
绛旓細string s = br.readLine();//readLine()璇诲叆绋嬪簭涓鐨勬槸涓涓瓧绗︿覆銆//java璨屼技浠庢帶鍒跺彴璇诲叆鐨勯兘鏄瓧绗︿覆锛屼竴鑸兘瑕佽繘琛岃浆鍖栥係ystem.out.println(s);System.out.println("璇疯緭鍏ヤ竴涓瓧绗︼細");char c = br.readLine().charAt(0);System.out.println(c);System.out.println("璇疯緭鍏ヤ竴涓弻绮惧害...
绛旓細//瀹氫箟涓涓鍙橀噺锛岀敤鏉ュ瓨鍌ㄩ敭鐩樿緭鍏ョ殑鏁版嵁銆係tring str;//浠庨敭鐩樿繘琛岃緭鍏ワ紝骞舵妸杈撳叆鐨勫兼斁鍒皊tr鍙橀噺涓./ 鍙互鏈夊緢澶氱鐨勮緭鍏ユ柟寮忥細 scanner.nextInt() 绛夌瓑 .scanner.next() 杩欐槸鏄瀛楃涓杈撳叆,涓鑸兘鏄敤杩欎釜锛屽洜涓烘暣鏁颁篃鍙互鐪嬫垚鏄 鐗规畩鐨勫瓧绗︿覆锛岄渶瑕佹暣鏁扮殑璇濓紝鍦ㄨ繘琛屽己鍒惰浆鍨嬨備笉鐒跺鏋 鐢╪ext...
绛旓細System.out.println("璇疯緭鍏涓涓瓧绗锛");char src = 0 ;try { src = (char )System.in.read();}catch (IOException e){};
绛旓細//缂栧啓涓涓JAVA,杈撳叆涓涓瓧绗,杈撳嚭杩欎釜瀛楃鍙婂叾ASCII鍊,骞惰緭鍑哄叾鍓嶄竴涓瓧绗﹀拰鍚庝竴涓瓧绗﹀強鍏堕暱搴ublic class baidu { public static void main(String args[]) { System.out.println("璇疯緭鍏ヤ竴涓瓧绗"); Scanner scanner = new Scanner(System.in); String str = scanner.next();/...
绛旓細1.棣栧厛锛屽鍏java.util.*鍖呫2.鐒跺悗锛屼綘闇瑕佹柊寤涓涓璇诲彇鏍囧噯杈撳叆锛堥敭鐩橈級鐨勬壂鎻忓櫒瀵硅薄銆3.鐜板湪锛屼綘鍙互浠庨敭鐩樿緭鍏瀛楃涓浜嗐