Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 替换字符串中的数字_Java_String_Numbers - Fatal编程技术网

Java 替换字符串中的数字

Java 替换字符串中的数字,java,string,numbers,Java,String,Numbers,我有一个数字串,如下所示: String digits = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10"; 我需要将小于5的设置为0,其余设置为1 例如,我试过了 digits = digits.replaceAll("[56789]", "1");// etc. 但它似乎不起作用 尝试了已经给出的解决方案,所以我无法让它们工作 如果确实有一个问题可以帮助我,请链接它,我将删除这一个 解决方案 返回数字.replaceAll(“[0-4]”,0”).replaceAll(“

我有一个数字串,如下所示:

String digits = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10";
我需要将小于5的设置为0,其余设置为1

例如,我试过了

digits = digits.replaceAll("[56789]", "1");// etc.
但它似乎不起作用

尝试了已经给出的解决方案,所以我无法让它们工作

如果确实有一个问题可以帮助我,请链接它,我将删除这一个

解决方案 返回数字.replaceAll(“[0-4]”,0”).replaceAll(“[5-9]”,1”)

这对我来说很有用,但当我把它分开写的时候,它就不起作用了

试试看

 digits =  digits.replaceAll("([0-4])", "0");
 digits =  digits.replaceAll("([5-9])", "1")
如果44不应该变成00

digits =digits.replaceAll("\\b([0-4]\\b)", "0");

digits =digits.replaceAll("\\b([5-9]\\b)", "1");
试一试

如果44不应该变成00

digits =digits.replaceAll("\\b([0-4]\\b)", "0");

digits =digits.replaceAll("\\b([5-9]\\b)", "1");

您不能将字符串数组转换为int数组并执行此操作吗

 String[] strArray = a.
 int[] intArray = new int[strArray.length];
 for(int i = 0; i < strArray.length; i++) {
     intArray[i] = Integer.parseInt(strArray[i]);
     // Here you can implement your business logic
 }

您不能将字符串数组转换为int数组并执行此操作吗

 String[] strArray = a.
 int[] intArray = new int[strArray.length];
 for(int i = 0; i < strArray.length; i++) {
     intArray[i] = Integer.parseInt(strArray[i]);
     // Here you can implement your business logic
 }

如果您使用的是Java 8,则可以使用:

String digits = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10";
String result = Arrays.stream(digits.split(",\\s*"))// split with comma and spaces
        .map(Integer::valueOf)                      // parse your string to Integer
        .map(i ->  i > 0 && i < 5 ? "1" : "0")      // if condition is true return 1 else 0
        .collect(Collectors.joining(", "));         // collect the result in the end

如果您使用的是Java 8,则可以使用:

String digits = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10";
String result = Arrays.stream(digits.split(",\\s*"))// split with comma and spaces
        .map(Integer::valueOf)                      // parse your string to Integer
        .map(i ->  i > 0 && i < 5 ? "1" : "0")      // if condition is true return 1 else 0
        .collect(Collectors.joining(", "));         // collect the result in the end

像这样的东西可能有用

//At the top
import java.lang.StringBuffer;

String digits = "1,2,3,4,5,6,7,8,9";
StringBuffer dig = new StringBuffer(digits);
for(int p = 0; p < dig.length(); p++){
char h = dig.charAt(p);
if(Character.isDigit(h)){
    if(h < '5'){
      dig.setCharAt(p,'0');
    }
    else if(h >= '5'){
      dig.setCharAt(p,'1');
    }
}
}
digits = dig.toString();
System.out.println(digits);
//在顶部
导入java.lang.StringBuffer;
字符串数字=“1,2,3,4,5,6,7,8,9”;
StringBuffer dig=新的StringBuffer(数字);
对于(int p=0;p='5',则为else{
dig.setCharAt(p,'1');
}
}
}
数字=dig.toString();
系统输出打印项次(位数);

StringBuffer提供可变的类似字符串的对象。

类似这样的东西可以工作

//At the top
import java.lang.StringBuffer;

String digits = "1,2,3,4,5,6,7,8,9";
StringBuffer dig = new StringBuffer(digits);
for(int p = 0; p < dig.length(); p++){
char h = dig.charAt(p);
if(Character.isDigit(h)){
    if(h < '5'){
      dig.setCharAt(p,'0');
    }
    else if(h >= '5'){
      dig.setCharAt(p,'1');
    }
}
}
digits = dig.toString();
System.out.println(digits);
//在顶部
导入java.lang.StringBuffer;
字符串数字=“1,2,3,4,5,6,7,8,9”;
StringBuffer dig=新的StringBuffer(数字);
对于(int p=0;p='5',则为else{
dig.setCharAt(p,'1');
}
}
}
数字=dig.toString();
系统输出打印项次(位数);
StringBuffer提供可变的类似字符串的对象。

返回数字。replaceAll(“[0-4]”,0”)。replaceAll(“[5-9]”,1”)

//这是我发现在这种情况下唯一有效的方法

返回数字.replaceAll([0-4],“0”).replaceAll([5-9],“1”)



//这是我发现在这种情况下唯一有效的方法

你还尝试了哪些其他方法?你想替换数字还是整数(例如,
44
应该替换为
00
还是
1
)?但这似乎不起作用-请提供一个例子?@帕尔帕廷:如果你找到了答案,你必须接受对你有帮助的答案,这样别人才能找到它helpful@Manasi我已经把对我有用的东西放在了答案部分,但只要我能接受,我的答案就在2天内。你用了其他的方法吗?你想替换数字还是整数(例如,
44
应该替换为
00
还是
1
)?但这似乎不起作用-请提供一个例子?@帕尔帕廷:如果你找到了答案,你必须接受对你有帮助的答案,这样别人才能找到它helpful@Manasi我已经把对我有用的东西放在了答案部分,但只要我能接受我的答案,我就要在2天内完成以上10项00@Julio:帕尔帕廷3没有回答是否将44替换为00。无论如何,我更新了答案,希望这能解决我最终解决的问题:返回数字。replaceAll(“[0-4]”,0”)。replaceAll(“[5-9]”,1”);随着上述10项的增加00@Julio:帕尔帕廷3没有回答是否将44替换为00。无论如何,我更新了答案,希望这能解决我最终解决的问题:返回数字。replaceAll(“[0-4]”,0”)。replaceAll(“[5-9]”,1”);我在解析“@帕尔帕廷3”时遇到了这个错误“到达了文件的结尾。这个错误与我的解决方案无关,你能告诉我们你尝试了什么吗?这对我来说最终解决了:返回数字。replaceAll(“[0-4]”,“0”)。replaceAll([5-9]”,“1”);我在解析“@帕尔帕廷3”时遇到了这个错误“到达了文件的结尾。这个错误与我的解决方案无关,你能告诉我们你尝试了什么吗?这对我来说最终解决了:返回数字。replaceAll(“[0-4]”,“0”)。replaceAll([5-9]”,“1”);不知何故,digits=digits.replaceAll(([0-4]),“0”);数字=数字。replaceAll(([5-9]),“1”)不适用于mesomehow数字=数字。replaceAll(([0-4]),“0”);数字=数字。replaceAll(([5-9]),“1”)对我不起作用