gpt4 book ai didi

java - 字符串中出现的字符的一致性 (Java)

转载 作者:太空宇宙 更新时间:2023-11-04 06:26:12 25 4
gpt4 key购买 nike

任何人都可以帮我解决这个问题吗:

编写一个程序,创建字符串中出现的字符的索引(即哪些字符出现在字符串中的位置)。从命令行读取字符串。运行程序:

java Concordance Hello World

{d=[9], o=[4, 6], r=[7], W=[5], H=[0], l=[2, 3, 8], e=[1]}

我尝试这个代码:

package q4;

public class Q4 {

public static void main(String[] args) {
// Scanner input = new Scanner(System.in);
// String string = input.nextLine();
// indexOfChar(string);
indexOfChar("hello");
}

@SuppressWarnings("empty-statement")
public static void indexOfChar(String string) {
int counter;
counter = 0;
String letter;
int[] letterCounter = new int[26];
letter = "abcdefghijklmnopqrstuvwxyz";

for (int i = 0; i < string.length(); i++) {
counter = 0;
letterCounter[letter.indexOf(string.charAt(i))]++;
}

counter = 0;
for (int i = 0; i < letterCounter.length; i++) {
if (letterCounter[i] != 0) {
counter++;
}
}
String s = null;

for (int i = 0; i < string.length(); i++) {
// char ch=name.charAt(i);
if (letterCounter[letter.indexOf(string.charAt(i))] != 0) {
System.out.print(string.charAt(i) + "=[");
}
for (int j = i; j < string.length(); j++) {
if (string.charAt(i) == string.charAt(j)) {
System.out.print(j + ",");
}
}
System.out.println("]");
}
//System.out.println(counter);
}
}

最佳答案

您可以使用 Map您可以在其中将每个字符映射到其出现的集合。您可以在列表上使用集合,因为字符串中的每个位置都是唯一的。

class Test{

private static Map<Character, Set<Integer>> characterConcordance(final String input) {

Map<Character, Set<Integer>> concordance = new HashMap<Character, Set<Integer>>();

for (int i = 0; i < input.length(); i++) {
char charAt = input.charAt(i);
if (charAt == ' ') {
continue; // ignore spaces
}
Set<Integer> set= concordance.get(charAt);
if (set == null) {
set= new HashSet<Integer>();
}
set.add(i + 1); // use i for 0-indexed, or (i+1) for 1-indexed positions
concordance.put(charAt, set);
}

return concordance;
}

public static void main(final String[] args) {

System.out.println(Test.characterConcordance("Java is cool!!"));
//prints {v=[3], !=[13, 14], s=[7], c=[9], a=[2, 4], o=[10, 11], l=[12], J=[1], i=[6]}
}
}

关于java - 字符串中出现的字符的一致性 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26779072/

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