Java 将空格转换为命令行类型的空格
我正在编写一个java程序,在这个程序中,我需要在文件名的空格前面加上Java 将空格转换为命令行类型的空格,java,escaping,Java,Escaping,我正在编写一个java程序,在这个程序中,我需要在文件名的空格前面加上\。例如,two-word filename.ext将是two-word\filename.ext 我尝试了System.out.println(str.replaceAll(“,”\”)但它在\和System.out.println(str.replaceAll(“,”\\”)处表示非法转义字符不影响字符串 如何执行此操作?使用replace方法指定要用作替换的确切字符串 String str = "space now pl
\
。例如,two-word filename.ext
将是two-word\filename.ext
我尝试了System.out.println(str.replaceAll(“,”\”)
但它在\
和System.out.println(str.replaceAll(“,”\\”)处表示非法转义字符代码>不影响字符串
如何执行此操作?使用replace
方法指定要用作替换的确切字符串
String str = "space now please";
System.out.println(str.replace(" ","\\ "));
印刷品
space\ now\ please
您需要转义字符串中的\
字符,因此它将是“\\”
使用replace
方法指定要用作替换的确切字符串
String str = "space now please";
System.out.println(str.replace(" ","\\ "));
印刷品
space\ now\ please
您需要转义字符串中的\
字符,因此它将是“\\”
使用replace
方法指定要用作替换的确切字符串
String str = "space now please";
System.out.println(str.replace(" ","\\ "));
印刷品
space\ now\ please
您需要转义字符串中的\
字符,因此它将是“\\”
使用replace
方法指定要用作替换的确切字符串
String str = "space now please";
System.out.println(str.replace(" ","\\ "));
印刷品
space\ now\ please
您需要对字符串中的\
字符进行转义,因此它将是“\\\”
这应该可以做到
System.out.println(str.replaceAll(" ","\\\\ "));
这应该能奏效
System.out.println(str.replaceAll(" ","\\\\ "));
这应该能奏效
System.out.println(str.replaceAll(" ","\\\\ "));
这应该能奏效
System.out.println(str.replaceAll(" ","\\\\ "));
我不知道System.out.println(str.replace(“,”\\”)代码>也可以。为什么要替换所有空白而不是第一个空白?无论如何,+1@rpax答案在Javadoc中。基本上,对于replaceAll
,替换字符串是由java.util.Matcher
使用的一个特殊的String
表达式<代码>请注意,替换字符串中的反斜杠(\)和美元符号($)可能会导致结果不同于将其视为文字替换字符串时的结果
<代码>替换不存在此类问题,但不使用正则表达式匹配值。@SotiriosDelimanolis替换。。。不使用正则表达式来匹配值
true,但让我们更清楚地了解情况。这句话并不意味着这里根本不使用正则表达式引擎replace(CharSequence,CharSequence)
在内部使用regex引擎,但在使用之前,它会自动从regex转义所有元字符(使用Pattern.LITERAL
flag)和replace(使用Matcher.quoteReplacement
方法)。@Pshemo我猜这是语义。但是请注意,replace(…)
的规范中没有说明如何实现替换。OracleJDK7实现使用正则表达式引擎,但它不必这样做。我本来可以说得更清楚,但这是一条注释,哎呀,不能编辑。我不知道System.out.println(str.replace(“,“\\”)代码>也可以。为什么要替换所有空白而不是第一个空白?无论如何,+1@rpax答案在Javadoc中。基本上,对于replaceAll
,替换字符串是由java.util.Matcher
使用的一个特殊的String
表达式<代码>请注意,替换字符串中的反斜杠(\)和美元符号($)可能会导致结果不同于将其视为文字替换字符串时的结果
<代码>替换不存在此类问题,但不使用正则表达式匹配值。@SotiriosDelimanolis替换。。。不使用正则表达式来匹配值
true,但让我们更清楚地了解情况。这句话并不意味着这里根本不使用正则表达式引擎replace(CharSequence,CharSequence)
在内部使用regex引擎,但在使用之前,它会自动从regex转义所有元字符(使用Pattern.LITERAL
flag)和replace(使用Matcher.quoteReplacement
方法)。@Pshemo我猜这是语义。但是请注意,replace(…)
的规范中没有说明如何实现替换。OracleJDK7实现使用正则表达式引擎,但它不必这样做。我本来可以说得更清楚,但这是一条注释,哎呀,不能编辑。我不知道System.out.println(str.replace(“,“\\”)代码>也可以。为什么要替换所有空白而不是第一个空白?无论如何,+1@rpax答案在Javadoc中。基本上,对于replaceAll
,替换字符串是由java.util.Matcher
使用的一个特殊的String
表达式<代码>请注意,替换字符串中的反斜杠(\)和美元符号($)可能会导致结果不同于将其视为文字替换字符串时的结果
<代码>替换不存在此类问题,但不使用正则表达式匹配值。@SotiriosDelimanolis替换。。。不使用正则表达式来匹配值
true,但让我们更清楚地了解情况。这句话并不意味着这里根本不使用正则表达式引擎replace(CharSequence,CharSequence)
在内部使用regex引擎,但在使用之前,它会自动从regex转义所有元字符(使用Pattern.LITERAL
flag)和replace(使用Matcher.quoteReplacement
方法)。@Pshemo我猜这是语义。但是请注意,replace(…)
的规范中没有说明如何实现替换。OracleJDK7实现使用正则表达式引擎,但它不必这样做。我本来可以说得更清楚,但这是一条注释,哎呀,不能编辑。我不知道System.out.println(str.replace(“,“\\”)代码>也可以。为什么要替换所有空白而不是第一个空白?无论如何,+1@rpax答案在Javadoc中。基本上,使用replaceAll
,r