【发布时间】:2022-01-17 12:34:52
【问题描述】:
这是一个按升序对句子中的每个单词进行排序的程序。
import java.util.Scanner;
import java.util.Arrays;
class sorteveryword
{
void main()
{
Scanner sc=new Scanner(System.in);
System.out.println("Enter the string");
String str=sc.nextLine();
String arr[]=str.split(" ");
int l=arr.length;
for(int i=0;i<l;i++)
{
String w=arr[i];
char ch[]=w.toCharArray();
Arrays.sort(ch);
System.out.print(ch+" ");
}
}
}
这段代码对我来说似乎很完美,但是当我打印一些东西时,它会显示这个输出。
Enter the string
ab bc
[C@55fba33b [C@51c42d5c
我真的不知道为什么会这样。
请帮忙。也请提供替代方案。
我希望输出为
Enter the string
your eyes
oruy eesy
【问题讨论】:
-
这是因为您将数组的实例而不是其内容传递给了 println 方法。对于数组,没有 toString 的实现
-
通过使用 toStirng,方括号和逗号也将被打印,但我希望输出为字符串。我该怎么办?
-
注意:您还可以从已排序的 char 数组中创建一个新字符串并将其用于打印:
System.out.print(String.valueOf(ch)+" ");- 这可能是您想要的 -
@oh god spiders 我做到了,但输出还是一样
标签: java arrays string sorting