gpt4 book ai didi

java - 按顺序计算字符出现的次数

转载 作者:行者123 更新时间:2023-11-30 02:52:19 25 4
gpt4 key购买 nike

我想按递增顺序查找每个字符的出现次数。

例如。对于输入 abcddec 输出应该是 a1b1c1d1d2e1c2 ,但是我的代码给我的输出为 a1b1c2d2e1c2

我应该做出哪些改变?

package com.Java8;

public class Occurences {

public static void main(String[] args) {

String str = "abb";
char[] arr = str.toCharArray();
String result = "";
for (int i = 0; i < arr.length; i++) {
int count = 0;
for (int j = 0; j < arr.length; j++) {
if (arr[i] == arr[j]) {
count++;
}
}
result = result + arr[i] + count;
}
System.out.println(result);
}
}

最佳答案

String str = "abcddecca";
char[] arr = str.toCharArray();
StringBuilder sb = new StringBuilder();
Map<Character, Integer> counters = new HashMap<>();
for( int i = 0; i < arr.length; i++ ) {
Integer count = counters.get( arr[i] );
if ( count == null ) {
count = 1;
} else {
count++;
}
counters.put( arr[i], count );
sb.append( arr[i] );
sb.append( count );
}
System.out.println( sb );

我更愿意创建一些计数器状态持有者并避免双重 FOR 循环。另外,在循环中使用字符串连接也不是一个好习惯,最好使用 StringBuilder。

关于java - 按顺序计算字符出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38240742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com