Java System.out.println()不工作

Java System.out.println()不工作,java,Java,这是我的第一篇文章。作为这个社区的一员,我很兴奋,我已经为这个问题挣扎了一段时间,因此: 在以下代码中: if (j == 0) { if (!Arrays.equals(cipherData, c)) { System.out.print("C: "); for (int i = 0; i < encryptedData.length; i++) System.out.print(

这是我的第一篇文章。作为这个社区的一员,我很兴奋,我已经为这个问题挣扎了一段时间,因此:

在以下代码中:

if (j == 0)
      {
        if (!Arrays.equals(cipherData, c))
        {
          System.out.print("C: ");
          for (int i = 0; i < encryptedData.length; i++)
            System.out.print((char)cipherData[i]);
          System.out.println();
        }
      }
if(j==0)
{
如果(!array.equals(cipherData,c))
{
系统输出打印(“C:”);
for(int i=0;i
System.out.println()
方法完全不返回任何内容。没有电话,或者别的什么,我不知道为什么。目标是在打印后打印一个空行,如果条件为真,则在上面打印字节数组


我们将非常感谢和欢迎任何帮助

在迭代for循环之前,您可以检查encryptedData的长度

System.out.println(“encryptedData.length::”+encryptedData.length)

System.out.print()
不打印换行符

您正在输出一组内容,然后使用
System.out.println()
打印一个换行符。这将导致光标下降到下一行

如果你想在那之后留下一个空行,你还需要另一个

编辑以添加:我忽略了一个事实,即您的
for
循环条件是。。。与正在打印的阵列不同。你的意思是这样吗

此外,由于您可能正在打印不可打印的字符,因此完全有可能导致终端处于换行不再工作的状态

归根结底,
println()
没有损坏。要么它没有被调用,要么在调用时没有看到换行符出现,那么终端就处于不再识别它的状态

检查

()


您可能需要
System.out.print('\n')

我对此表示担忧:

System.out.print((char)cipherData[i]);
假设
cipherData
是一个字节数组,那么将一个字节强制转换为
char
并通过字符流将其打印出来可能不会得到很好的结果。首先,小于32位小数的字节将映射为ASCII“控制字符”

而且您可能打印了错误的数组。。。或者使用了错误数组的长度


(但问题的解释是,您需要第二次调用
println
作为空行。第一次println只是终止包含密码数组中的…嗯…“字符”的行。)

听起来问题在于您运行的JVM没有附加任何标准输出。像在Windows上一样,使用javaw.exe运行jar(注意,这是默认设置)。如果从控制台运行Java.exe,则会将其输出到控制台窗口,但javaw.exe不会。如果从“文件资源管理器”窗口运行该程序,即使使用java.exe,也无法获取任何标准,因为它被windows隐藏


因此,在命令行窗口中运行该程序,并使用java.exe,而不是javaw.exe。

如果他使用System.out.println(“\n”);如果我错了,请纠正我。唯一的问题是系统没有使用
\n
作为换行符。就像一个与“Windows”押韵的操作系统。实际上有一种方法可以获取当前系统特定的换行符(
system.getProperty(“line.separator”)
),但是。。。只需再次使用
println()
就更容易了。这让我很好奇。如果系统不使用\n,那么system.out.println()如何工作?JVM是特定于平台的,它知道系统的换行符是什么,这就是
println()
将要使用的。请参阅对我的最后一条注释的编辑-这就是如何从
系统
类中检索它的方法。感谢您的帮助,尽管我在System.out.println()方法中放置了什么并不重要,包括“\n”或其他任何内容。除非将System.out.println()放置在if语句之外,否则不会打印任何内容。即使我使用相同的条件创建了一整套其他if语句并调用System.out.println()时,也不会发生任何事情。感谢您的帮助,尽管我在System.out.println()方法中放置了什么并不重要,包括“\n”或其他任何内容。不打印任何内容。@user1905765是否已确认所有if和for条件均为真?是,for循环printsIm中的另一个print语句不完全确定其重要性,尽管它也不打印。在System.out.println()上,此调用中不打印任何内容;虽然如果我把它放在if语句之外,打印效果会很好。你能使用System.out.println((char)cipherData[I])吗;是的,字节数组打印得很好。它是我在for循环之后尝试打印的任何内容,该循环打印仍然在if语句中但不打印的字节数组。当逐行遍历程序时,会完全跳过System.out.println()方法。
System.out.print((char)cipherData[i]);