gpt4 book ai didi

java - 一串单词的排列(顺序),但之间用逗号分隔

转载 作者:行者123 更新时间:2023-12-02 08:35:11 25 4
gpt4 key购买 nike

我在让这段代码在以逗号分隔的字符串上生成多个排列(排序)时遇到了一些困难...我可以只做一个常规字符串,并让排列仅对字母起作用,但它有点多用逗号分隔的单词时很困难...

为了让程序识别逗号,我使用了 StringTokenizer 方法,并将其放入 arrayList 中,但这实际上是我所得到的......问题再次是我在排列每个单词时遇到麻烦。 ..举个例子,我将在下面发布它,然后在下面发布我的代码...谢谢大家的帮助! ...通过排列,我的意思是用逗号分隔的单词的顺序

例如,如果 BufferedReader 上的输入如下所示:

red,yellow

one,two,three

PrintWriter 上的输出应如下所示:

red,yellow

yellow,red



one,two,three

one,three,two

two,one,three

two,three,one

three,one,two

three,two,one

请注意,输入总共有 3 行,包括“一,二,三”后面的空行,而输出总共有 11 行,包括“黄色,红色”后面的一个空行和“三,二、一”。获得完全正确的格式至关重要,因为测试将是自动化的并且需要这种格式。另请注意,每个问题的输出行顺序并不重要。这意味着输出的前两行也可能是:

yellow,red

red,yellow
<小时/>

这是我到目前为止的代码...我已经注释了一些内容,所以不用担心这些部分

import java.io.*;

import java.util.*;

public class Solution

{

public static void run(BufferedReader in, PrintWriter out)

throws IOException

{

String str = new String(in.readLine());

while(!str.equalsIgnoreCase(""))
{
PermutationGenerator generator = new PermutationGenerator(str);
ArrayList<String> permutations = generator.getPermutations();
for(String str: permutations)
{
out.println(in.readLine());
}
out.println();
out.println();

}
out.flush();

}







public class PermutationGenerator
{

private String word;


public PermutationGenerator(String aWord)
{
word = aWord;
}



public ArrayList<String> getPermutations()
{
ArrayList<String> permutations = new ArrayList<String>();
//if(word.length() == 0)
//{
//permutations.add(word);
//return permutations;

//}

StringTokenizer tokenizer = new StringTokenizer(word,",");

while (tokenizer.hasMoreTokens())
{
permutations.add(word);
tokenizer.nextToken();
}
/*
for(int i = 0; i < word.length(); i++)
{
//String shorterWord = word.substring(0,i) + word.substring(i + 1);
PermutationGenerator shorterPermutationGenerator = new PermutationGenerator(word);
ArrayList<String> shorterWordPermutations =
shorterPermutationGenerator.getPermutations();

for(String s: shorterWordPermutations)
{
permutations.add(word.readLine(i)+ s);
}
}*/
//return permutations;


}
}

}

最佳答案

您可以使用 String.split() ( http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#split(java.lang.String) ) 将各个单词放入数组中。您可以单独生成整数 {1..N} 的所有排列,其中 N 是单词数组的大小。然后使用数字排列作为索引遍历单词数组。

关于java - 一串单词的排列(顺序),但之间用逗号分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2084816/

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