转换字符串格式

时间:2018-08-08 12:04:54

标签: java

我正在从文本文件中获取此字符串,并将其存储到类似的变量中

File file = new File("output.txt");
FileInputStream fis = new FileInputStream(file);
byte[] data = new byte[(int) file.length()];
fis.read(data);
fis.close();
String str = new String(data, "UTF-8");

str返回这样的帖子:

| SITENAME                     | TOTAL XML GENERATED  |     TOTAL URL ADDED IN XML      |
|:-----------------------------|:-----------:|:-----------------------------|
|https://www.google.com|71|2800884|
|https://www.google.com|71|2800884|

但是当我将此str发送到api时,它将返回bad gateway

但是当我使用以下格式的字符串发送请求时,它被接受并发布到Messenger中。

String str = ("| SITENAME   \t\t\t       | TOTAL XML GENERATED  | \tTOTAL URL ADDED IN XML      |\n" +
              "|:-----------------------------|:-----------:|:-----------------------------|\n" +
              "|https://www.google.com|71|2800884|\n" +
              "|https://www.google.com|71|2800884|\n" +

任何人都可以建议我如何转换字符串?

3 个答案:

答案 0 :(得分:2)

起初,我以为您可以在Windows上工作,但可以在Ubuntu(\n\r\n)上工作。后来,我认为文本上下文可能包含一个奇怪的Unicode字符,该字符可能会误导代码,但很干净。最终,后者是用键盘键盘输入的字符串,每行末尾有"\n"个字符。据推测,传递方法也可以预测文本的字符结尾。

String str = new String(data, "UTF-8") + "\n";

答案 1 :(得分:0)

尝试一下:

BufferedReader br = new BufferedReader(new FileReader(filename));
StringBuffer sb = new StringBuffer();
while((line = bufferedReader.readLine()) != null)
{
   sb.append(line); //append the lines to the string
   sb.append('\n'); //append new line
}
//Required string
String newString = sb.toString();

return newString;

答案 2 :(得分:0)

在我的字符串中,我应该保持换行符,并且api不支持\r\n,并且下面我刚刚解决了问题的方式

str.replaceAll("\r\n",System.getProperty("line.separator"));