我正在编写一个程序(在某一点上)对另一个本机应用程序进行命令行调用,从该应用程序获取输出,并将其作为String放入JTextPane中。问题是,它似乎没有按照它应该的方式获取换行符。因为我使用的是linux,所以每行都以^M
而不是\n
结尾。
有没有办法告诉Java寻找那些并在字符串中创建换行符?
private void getSettings() {
Commander cmd = new Commander();
settings = cmd.getCommandOutput("hdhomerun_config " + ipAddress + " get /sys/boot");
settingsTextPane.setText(settings);
}
我最终将输出barfed分成一行并在文本窗格中包裹。
答案 0 :(得分:1)
我记得Unix为回车符^M
显示\r
,因此您可以尝试使用String类的replace方法替换它
settingsTextPane.setText(settings.replace('\r', '\n'));
答案 1 :(得分:0)
谢谢大家,我再次浏览了我的代码并意识到我正在一次读取程序中的输出,只是附加了行。我需要在我阅读的每一行的末尾添加一个\ n。如果我错了,请纠正我,但我相信Java会根据您的操作系统自动更正换行符。