这个问题在这里已经有答案了:
字符串替换方法不替换字符(5个答案)
5个月前关门了。
我在做一些安罗伊工作室的项目。我有个问题。
我有一个名为result\u stack的堆栈。->结果\u堆栈=[k,t,e,j,o,s,o,g,o,j]
我尝试将此堆栈转换为字符串-> String final_result = String.valueOf(result_stack);
现在,当我尝试打印最终结果-> System.out.println(final_result);
->它打印[k,t,e,j,o,s,o,g,o,j]
但我想去掉所有的逗号,方括号和空格。我的意思是,我想像这样打印“ktejosogoj”,然后我会把它设置为文本视图。
我试过了,但什么都没变:
final_result.replaceAll(",", "");
System.out.println(final_result);
我仍然得到[k,t,e,j,o,s,o,g,o,j]作为输出。请帮帮我。
5条答案
按热度按时间nukf8bse1#
不要打电话
String.valueOf(result_stack)
或者result_stack.toString()
,并尝试“修复”结果。而是正确构建字符串。输出
whitzsjs2#
你仍然看到旧价值观的原因是
Strings
是不可变的(一旦它们被创建,它们就不会改变。)解决方法是设置
final_result
变量的结果replaceAll
方法调用。奇怪,我知道。这样地:
final_result = final_result.replaceAll(",", "");
p、 你也需要替换空格和括号,但你会发现:)sulc1iza3#
我是用数组而不是堆栈来实现的,但是如果在将堆栈转换为字符串时得到方括号和逗号,同样的想法也适用,只需要调用
replace()
:这将打印以下内容:ktejosogoj
同样,您可以通过调用
substring()
而不是打那么多电话给replace()
. 请记住,字符串在java中是不可变的,因此您需要分配对string类型的对象调用的方法的结果,除非您像我一样将它们作为另一个方法的输入进行链接。cyej8jka4#
使用正则表达式删除除字母以外的所有符号
xjreopfe5#
输出