【发布时间】:2020-08-25 17:30:33
【问题描述】:
我需要制作一个程序,该程序将从用户那里获取字符串输入并将其存储在一个数组中。然后我需要创建一个函数,首先:按降序对每个字符串 {character by character} 排序,然后:按降序 {Strings} 对所有 String 输入进行排序。
package com.company;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
static String sortString(String str)
{
char[] chArr = str.toCharArray();
String SortString = "";
// For sorting each individual strings character by character
for (int i = 0; i< chArr.length; i++)
{
for (int j = 0; j < chArr.length; j++)
{
if(chArr[i] > chArr[j])
{
char temp = chArr[i];
chArr[i] = chArr[j];
chArr[j] = temp;
}
}
}
//converting all of the character into a single string
for (int k = 0; k<chArr.length;k++)
{
SortString = SortString + chArr[k];
}
//Assigning the current String Sortstring to an array
String[] OldArray = new String[5];
for (int counter = 0; counter<5; counter++)
{
OldArray[counter] = SortString;
}
//sorting all of the strings in descending order
for (int i = 0; i< OldArray.length;i++)
{
for (int j = i+1; j< OldArray.length;j++)
{
if(OldArray[i].compareTo(OldArray[j]) > 0)
{
String temp = OldArray[i];
OldArray[i] = OldArray[j];
OldArray[j] = temp;
}
}
}
return OldArray[0];
}
public static void main(String[] args)
{
Scanner UserInput = new Scanner (System.in);
String[] names = new String[5];
// will take a String user input from a user and store it in an arra
for (int counter = 0; counter<5; counter++)
{
do
{
System.out.print("Input String #" + (counter+1) + ": ") ;
names[counter] = UserInput.next().toLowerCase();
}while(names[counter].length() > 25);
}
//will print the assorted array
for(int i = 4; i >= 0; i--)
{
System.out.println((sortString(names[i])));
}
}
}
输入:
Input String #1: Stackoverflow
Input String #2: Java
Input String #3: ZZrot
Input String #4: coding
Input String #5: sorting
输出
tsronig
onigdc
zztro
vjaa
wvtsroolkfeca
预期输出:
zztro
wvtsroolkfeca
vjaa
tsronig
onigdc
对不起,我真的不知道该怎么办
【问题讨论】:
-
您的排序字符串函数似乎给出了正确的输出,但是您的排序字符串数组函数在哪里?
-
看看这个,它应该会为你指明正确的方向geeksforgeeks.org/comparator-interface-java
-
在同一个函数中,我的导师告诉我们,对字符串数组进行排序和对字符串进行排序(逐个字符)应该在一个函数中。
-
查看后,如果您需要更多帮助,请告诉我,但您可以在该链接中找到按降序对数组进行排序所需的一切。祝你好运!
-
提示:要从升序到降序,您可以将 compareTo 的返回值乘以某个负数