我目前正在下面的程序上工作。它需要3个输入单词,并按词典编撰顺序输出它们。我觉得我得到了一个越界的异常,因为我刚刚输入了一个错误的数字,但我找不到它。下面是代码:
class LexicoOrder {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Enter a word: ");
String firstword = in.nextLine();
System.out.println("Enter another word: ");
String secondword = in.nextLine();
System.out.println("Enter one more word: ");
String thirdword = in.nextLine();
String[] words = {firstword, secondword, thirdword};
for(int i = 0; i < 3; ++i) {
for (int j = i + 1; j < 4; ++j) {
if (words[i].compareTo(words[j]) > 0) { // receive error here. Out of bounds
String temp = words[i];
words[i] = words[j];
words[j] = temp;
}
}
}
System.out.println("In lexicographical order:");
for(int i = 0; i < 3; i++) {
System.out.println(words[i]);
}
}
}
for(int i = 0; i < 3; ++i) {
for (int j = i + 1; j < 4; ++j) {
if (words[i].compareTo(words[j]) > 0)
问题是当j变成3时,它会达到点,所以单词[3]是越界的。改为使用以下内容:
for(int i = 0; i < 3; ++i) {
for (int j = i + 1; j < 3; ++j) {
if (words[i].compareTo(words[j]) > 0)
永远记住索引是从0开始的,所以你的索引是0,1,2而不是3。
根据字典顺序和自定义顺序对字符串数组进行排序(一种排列形式)。这是代码: 问题是,当我对一些输入运行此命令时,输出是正确的,而对于其他输入,输出是不正确的。我一直在调试它,但没有找到错误。 编辑: 阿德里安娜正在玩英文字母表。当她玩完字母表后,她意识到她把字母的位置弄乱了。现在,给定一组单词,她想知道根据她制作的新字母表排序,这些单词的字典排序是什么。 换句话说,给定英语字母表E和一组单词S的排列
我在寻找字典上最小的字符串的排列数。 例如,< code>bbaa现在,字典上最小的字符串是< code>aabb,因此,排列是, < code>(1,2,3,4),(2,1,3,4),(1,2,4,3),(2,1,4,3)也就是4。 我对它的想法(在python中)是找到最小的字符串(基本上将其排序为字符串),然后创建一个计数器来存储每个字符的计数。 因为,我们不需要一个在字典上变得更大的字符串
问题内容: 我有一个字符串数组,例如: 使用时,我按字典顺序对它们进行了排序,例如。 如何遍历根据数字值排序的字符串? 问题答案: 您可以将内置函数与一个键一起使用,以在比较之前将列表中的每个项目映射到一个整数: 输出量 使用此方法将根据需要输出字符串列表。
示例输入:电脑很有趣 示例输出:有趣的是计算机 我不知道从哪里开始。请帮我完成这个项目。
按字母顺序排序字符串中的字符。 使用扩展运算符(...),Array.sort() 和 String.localeCompare() 对 str 中的字符进行排序,使用 String.join('') 重新组合。 const sortCharactersInString = str => [...str] .sort((a, b) => a.localeCompare(b))
问题内容: 我已经在Redis中使用排序集实现了排行榜。我希望具有相同分数的用户按时间顺序排序,即,第一名的用户应排名更高。当前,redis支持词典顺序。有没有一种方法可以覆盖它。手机号码被用作排序集中的成员。 我想到的一种解决方案是在移动电话号码之前添加时间戳,并维护散列以映射移动电话号码和时间戳。 这样,在任何情况下,我都可以通过从哈希添加前缀来获得给定用户的排名。 现在这不是我想要的。这将与