删除java字符串中除“0”和“1”以外的所有字符

删除java字符串中除“0”和“1”以外的所有字符,java,string,Java,String,如何删除字符串中既不是“0”也不是“1”的所有字符,以便最终字符串仅由0和1组成?我正在使用Java8 我使用for循环的解决方案我认为这不是最有效的方法: String before = "012940124810"; String after = new String(); for(int i = 0; i < before.length(); i++) { if(before.charAt(i) == '0' || before.charAt(i) == '1') {

如何删除字符串中既不是“0”也不是“1”的所有字符,以便最终字符串仅由0和1组成?我正在使用Java8

我使用for循环的解决方案我认为这不是最有效的方法:

String before = "012940124810";
String after = new String();

for(int i = 0; i < before.length();  i++) {
  if(before.charAt(i) == '0' || before.charAt(i) == '1') {
    after += before.charAt(i);
  }
}

要做到这一点,您只需获取一个从0开始的索引变量,如果该变量不是0,则逐个字符删除;如果找到,则只需将索引移动到下一个位置,而不删除它。如果您需要更多帮助,请附加一些代码,以便我告诉您完美的解决方案

您可以使用regex和replaceAll方法

 String out = str.replaceAll("[^01]", "");