我怎样才能把一个字符串放在一行中
How can i put a string in one line
我正在做一些转换,从十六进制到 Ascii,当我转换字符串时,我得到以下示例:
F23C040100C1
100D200000000000
0000
我知道字符串是这样的,因为基数是 16,但我也想把它放在一行中,像这样:
F23C040100C1100D2000000000000000
我该怎么做?
我试过:
mensagem.replaceAll("\r\n", " ");
您可能 运行 遇到多个问题,因此我将在这个答案中涵盖所有问题。
首先,String
上任何看似修改它的方法实际上 return String
的新实例。这意味着如果你这样做:
String something = "Hello";
something.replaceAll("l", "");
System.out.println(something); //"Hello"
你会想做的
something = something.replaceAll("l", "");
或者你的情况
mensagem = mensagem.replaceAll("\r\n", " ");
其次,换行符中可能没有任何\r
,但有一个\n
,反之亦然。因此,您想说
if \r
exists, remove it. if \n
exists, also remove it
您可以这样做:
mensagem = mensagem.replaceAll("\r*\n*", " ");
正则表达式中的 *
运算符表示匹配零个或多个前面的符号。
mensagem.replaceAll("\r\n|\r|\n", "");
我正在做一些转换,从十六进制到 Ascii,当我转换字符串时,我得到以下示例:
F23C040100C1
100D200000000000
0000
我知道字符串是这样的,因为基数是 16,但我也想把它放在一行中,像这样:
F23C040100C1100D2000000000000000
我该怎么做?
我试过:
mensagem.replaceAll("\r\n", " ");
您可能 运行 遇到多个问题,因此我将在这个答案中涵盖所有问题。
首先,String
上任何看似修改它的方法实际上 return String
的新实例。这意味着如果你这样做:
String something = "Hello";
something.replaceAll("l", "");
System.out.println(something); //"Hello"
你会想做的
something = something.replaceAll("l", "");
或者你的情况
mensagem = mensagem.replaceAll("\r\n", " ");
其次,换行符中可能没有任何\r
,但有一个\n
,反之亦然。因此,您想说
if
\r
exists, remove it. if\n
exists, also remove it
您可以这样做:
mensagem = mensagem.replaceAll("\r*\n*", " ");
正则表达式中的 *
运算符表示匹配零个或多个前面的符号。
mensagem.replaceAll("\r\n|\r|\n", "");