在javaandroidstudio中从堆栈或字符串中删除逗号和方括号

yeotifhr  于 2021-07-09  发布在  Java
关注(0)|答案(5)|浏览(623)

这个问题在这里已经有答案了

字符串替换方法不替换字符(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]作为输出。请帮帮我。

nukf8bse

nukf8bse1#

不要打电话 String.valueOf(result_stack) 或者 result_stack.toString() ,并尝试“修复”结果。而是正确构建字符串。

Stack<String> result_stack = new Stack<>();
result_stack.addAll(Arrays.asList("K", "T", "E", "J", "O", "S", "O", "G", "O", "J"));

// The wrong way, don't do this
String final_result1 = String.valueOf(result_stack);
System.out.println(final_result1);

// The correct way (Java 8+)
String final_result2 = result_stack.stream().collect(Collectors.joining());
System.out.println(final_result2);

// The correct way (Java 1.5+)
StringBuilder buf = new StringBuilder();
for (String value : result_stack)
    buf.append(value);
String final_result3 = buf.toString();
System.out.println(final_result3);

输出

[K, T, E, J, O, S, O, G, O, J]
KTEJOSOGOJ
KTEJOSOGOJ
whitzsjs

whitzsjs2#

你仍然看到旧价值观的原因是 Strings 是不可变的(一旦它们被创建,它们就不会改变。)
解决方法是设置 final_result 变量的结果 replaceAll 方法调用。奇怪,我知道。
这样地: final_result = final_result.replaceAll(",", ""); p、 你也需要替换空格和括号,但你会发现:)

sulc1iza

sulc1iza3#

我是用数组而不是堆栈来实现的,但是如果在将堆栈转换为字符串时得到方括号和逗号,同样的想法也适用,只需要调用 replace() :

import java.util.*;
public class MyClass {
    public static void main(String args[]) {
      String[] array = {"K", "T", "E", "J", "O", "S", "O", "G", "O", "J"};
      System.out.println(Arrays.toString(array).replace(",","").replace("[","").replace("]","").replace(" ",""));
    }
}

这将打印以下内容:ktejosogoj
同样,您可以通过调用 substring() 而不是打那么多电话给 replace() . 请记住,字符串在java中是不可变的,因此您需要分配对string类型的对象调用的方法的结果,除非您像我一样将它们作为另一个方法的输入进行链接。

cyej8jka

cyej8jka4#

使用正则表达式删除除字母以外的所有符号

String final_result = String.valueOf(result_stack).replaceAll("[^a-zA-Z]", "");
xjreopfe

xjreopfe5#

String HomeName = "[K, T, E, J, O, S, O, G, O, J]";
String Replace = HomeName.replaceAll("[^a-zA-Z0-9\\\\s+]","");
UserName.setText(Replace);

输出

KTEJOSOGOJ

相关问题