字符串转议问题"\".(没分了就给50吧)

kiss0931 2004-08-07 09:49:45
public class Ttt {
public Ttt() {
String str = "1111111111\11111111111111";
System.out.println(str.replaceAll("\\", "\\\\"));
}


public static void main(String[] args) {
Ttt t = new Ttt();
}

}

怎么样才能让程序输出:1111111111\11111111111111
正则表达式replaceAll("\\","\\\\")来替换可以编译但执行错误.
...全文
210 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
kiss0931 2004-08-07
  • 打赏
  • 举报
回复
后面的字没有被替换,而是被转义了.
kiss0931 2004-08-07
  • 打赏
  • 举报
回复
也不行.这样的话1111\3333,就被替换成了1111?3
ntzls 2004-08-07
  • 打赏
  • 举报
回复
str=str.replaceAll("\\\\", "\\\\");
kiss0931 2004-08-07
  • 打赏
  • 举报
回复
如果用户输入1111\3333

我要更新数据库的语句就是 UPDATE persontable SET username= '1111\\3333' WHERE id=48;

我当然要把'\'替换成'\\'了
ntzls 2004-08-07
  • 打赏
  • 举报
回复
替换'\'为'\\'
^^^^^^^^^^^^^

想干什么?

str=str.replaceAll("\\\\", "\\\\");
^^\ ^^\
kiss0931 2004-08-07
  • 打赏
  • 举报
回复
问题是我要往数据库里传,如果用户输入了1111\3333

我要传入数据库.
^^^^^^^^^^^^^^
就要用replaceAll方法替换'\'为'\\',

怎么替换?
ntzls 2004-08-07
  • 打赏
  • 举报
回复
自已多试,一定能解决!
kiss0931 2004-08-07
  • 打赏
  • 举报
回复
我有点理解了,我去试试,没问题的话一会结贴.
ratjohn 2004-08-07
  • 打赏
  • 举报
回复
你就直接传入"1111\\3333"不就行了呗:
如果你是用代码调这个方法,传入的就应该是"1111\\3333"
如果你是通过命令行或者文本输入框等外部传入的参数,直接"1111\3333"就行,java在接收到的时候就会转成"1111\\3333"
你的方法里面直接用System.out.println(str);
ntzls 2004-08-07
  • 打赏
  • 举报
回复
用户输入的字符含\就保存为\,不等同于你的"1111\3333";,而等同于是"1111\\3333"。
自已试试
kiss0931 2004-08-07
  • 打赏
  • 举报
回复
str的字符串不是固定不变的,谁知道用户可能输入些什么东西?

能留个qq号吗大哥.
ntzls 2004-08-07
  • 打赏
  • 举报
回复
public Ttt() {
String str = "1111\\3333";
//System.out.println(str.replaceAll("\\\\", "\\\\\\\\"));
System.out.println(str);
}

ntzls 2004-08-07
  • 打赏
  • 举报
回复
\333 ==> 算一下8进制333代表哪个字符?
kiss0931 2004-08-07
  • 打赏
  • 举报
回复
字符串内容里包含\字符,如果直接输出字符串的时候\后的字符就会被当做转义符.

public Ttt() {
String str = "1111\3333";
//System.out.println(str.replaceAll("\\\\", "\\\\\\\\"));
System.out.println(str);

}

输出的结果:1111?3
^^^^^^^^^^^^^^^^

我想要它输出1111\3333


ntzls 2004-08-07
  • 打赏
  • 举报
回复
String str = "1111111111\11111111111111";
^^str串内不含字符
无法实现你的要求。


我是想做一个方法,把任意字符串传进去,把里面的‘\’程序输出时出输入'\'
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
字符串内含\字符直接输出即可,无需替换,与正则表达式无关。
kiss0931 2004-08-07
  • 打赏
  • 举报
回复
晕,怎么没有人回答?
kiss0931 2004-08-07
  • 打赏
  • 举报
回复
我只是想让任意字任串里面包括"\",再输出的时候还是输出"\"就可以了。



yiqiangyang 2004-08-07
  • 打赏
  • 举报
回复
str.replaceAll("\\", "\\\\");看不懂你要替换的是什么?表达清晰一点。
kiss0931 2004-08-07
  • 打赏
  • 举报
回复
如果从命令行直接输入\一个的话java就会认为它是一个转义
kiss0931 2004-08-07
  • 打赏
  • 举报
回复
我是想做一个方法,把任意字符串传进去,把里面的‘\’程序输出时出输入'\'
加载更多回复(7)

62,622

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧