为啥 print("\0007") 不响?

Posted

技术标签:

【中文标题】为啥 print("\\0007") 不响?【英文标题】:why print("\0007") does not beep?为什么 print("\0007") 不响? 【发布时间】:2013-12-08 10:52:33 【问题描述】:

我已经在 eclipse javaSE1.7 上尝试过这段代码,它应该发出哔声,但它没有。这是为什么呢?

public class Main 
  public static void main(String args[]) 
    // ASCII bell
    System.out.print("\0007");
    System.out.print("\007");
    System.out.flush();
  

source

【问题讨论】:

应该是System.out.print("\007"); 我也试过了,还是不行:/ 另见Toolkit.beep().. 您的终端是否会发出哔哔声?大多数情况下,“铃铛”功能默认是关闭的。在您的终端中尝试set bell-style audible(假设它不是 Windows)。 【参考方案1】:

有很多可能性:

    您没有打印到终端。 有人从终端上取下了蜂鸣器。 您的终端仿真不支持哔声 ...或者它被某个选项关闭了 您的扬声器已静音。 ....

顺便说一句,您实际上是在打印一个 NUL 后跟 '7'。

【讨论】:

@sadaf2605 你可以做到\u0007(char) 7【参考方案2】:

并非每种字体都包含编码中的每个字符(例如,您是否在 IDE 控制台中运行它 - 这可能也是用 Java 编写的)?无论如何,这不是跨平台的。如果您不在 ASCII 机器上怎么办?

public static void main(String args[]) 
  Toolkit.getDefaultToolkit().beep();

【讨论】:

【参考方案3】:

在 JDK 中尝试使用 beep 方法

import java.awt.*;
public class Beep 
  public static void main(String args[]) 
     Toolkit.getDefaultToolkit().beep();     
  

【讨论】:

以上是关于为啥 print("\0007") 不响?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 `python -c 'print('howdy')'` 会产生错误(在 zsh 中),但 `python -c 'print("howdy")'` 不会?

在下面的代码中,当点击按钮时,为啥不能调用[print("BBB's build function.")]?

为啥执行时没有执行基类的构造函数?

pyhton中s="hello",print(s[1:3])为啥输出结果为el?

关于java的println和print的区别,这个语句里面 如果加了ln跟没加相比不是换行那么简单,为啥?

Ajax GET 结果由“ERR_INCOMPLETE_CHUNKED_ENCODING”和“XMLHttpRequest: Network Error 0x800c0007”突然出现