我正在从文本文件中获取此字符串,并将其存储到类似的变量中
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" +
任何人都可以建议我如何转换字符串?
答案 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"));