当前位置: 首页 > 知识库问答 >
问题:

java中排序程序出现意外错误[复制]

松雅健
2023-03-14

这是一个按升序排列句子中每个单词的程序。

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

共有2个答案

易飞文
2023-03-14

当你试图打印时,

 System.out.print(ch+" ");

这将打印对象类的toString方法的默认实现(除非覆盖数组的toString方法)

要解决您的问题,您可以首先将其转换为字符串并打印。

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(new String(ch)+" ");
            }

它提供了所需的输出

Enter the string
your eyes
oruy eesy 
钱运浩
2023-03-14

实现你想要的最简单的方法是从排序的字符数组中构造一个新的字符串,并打印该字符串:

System.out.print(String.valueOf(ch)+" ");

见:https://ideone.com/4Mgoye举个例子。

默认情况下,数组不为toString()方法提供重写,将使用java的默认实现。对象-查看如何打印Java对象而不获取“SomeType@2f92e0f4“?了解更多关于此的背景信息。

虽然字符串本身当然可以打印没有问题,所以使用Sting.value从你的字符数组生成字符串将允许你打印字符串没有太多麻烦。

 类似资料:
  • 问题内容: 我是java的新手,我的问题是,按下键后输出显示2个数字,但我不明白为什么。 这是代码: 问题答案: 尽管我不能重现该问题:(请参阅此处),但我的建议是也打印出字符(作为整数)。这将帮助您调试:

  • < li >我已经设置了一个Azure Cosmos DB,它公开了MongoDB API。 < li >我使用mongo shell连接到数据库。 < li >我用< code >使用示例创建了一个新的db 。 < li >我使用< code > db . sample . insert({ }) 创建了一个简单的集合< code>sample < li >然后,我尝试运行以下查询: 当我对一个

  • 我为学校制作了一个java程序,允许客户购买火车票。到目前为止,一切都很完美,除了当我调用final方法(当前的final方法最终会有更多)时,它会打印我命令该方法打印的内容,但它也会输出一些随机的文本行,我无法确定何时。我将粘贴下面的程序代码,并在运行程序时显示控制台。我将努力突出问题。非常感谢,希望有人能帮忙。p、 程序应在“测试”结束。 这是我运行程序时出现的错误(没有以“test”结尾,我

  • 我有一个问题编译以下漏洞代码: http://downloads.securityfocus.com/vulnerabilities/exploits/59846-1.c 我使用的是"gcc file. c"和"gcc-O2 file. c",但是这两个文件都会导致以下错误: 我试着在Kali Linux和Ubuntu上编译它们

  • 基本上,我正在youtube上做注册和登录教程。它使用的是旧版本的PHP,我试图更新代码,但出现以下错误: 分析错误:语法错误,在第23行的C:\Program Files(x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\Forum\Forum\core\functions\users.php中出现意外“,” users.php

  • 我有一个索引php页面,其中包含一个打印数组值的代码