Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 - Fatal编程技术网

Java 如何从数字字符串结果中删除逗号?

Java 如何从数字字符串结果中删除逗号?,java,string,Java,String,我有结果,它是文本或数值,例如: String result; result = "avsds"; result = "123"; result = "345.45"; 有时结果还包含逗号,如: result = "abc,def"; result = "1,234"; 我只想在结果是数值时删除逗号,而不是在它是简单文本时删除逗号 最好的方法是什么?最简单的方法是使用两个正则表达式。第一个是确保它是数字的(类似于[0-9.,]*),第二个是清除它(result.replaceAll(“/,/

我有
结果
,它是文本或数值,例如:

String result;
result = "avsds";
result = "123";
result = "345.45";
有时结果还包含逗号,如:

result = "abc,def";
result = "1,234";
我只想在
结果
是数值时删除逗号,而不是在它是简单文本时删除逗号


最好的方法是什么?

最简单的方法是使用两个正则表达式。第一个是确保它是数字的(类似于
[0-9.,]*
),第二个是清除它(
result.replaceAll(“/,/”)

),最简单的方法是使用两个正则表达式。第一个要确保它是数字的(类似于
[0-9.,]*
),第二个要清除它(
result.replaceAll(“/,/”

以下是您的答案:

    String regex = "(?<=[\\d])(,)(?=[\\d])";
    Pattern p = Pattern.compile(regex);
    String str = "Your input";
    Matcher m = p.matcher(str);
    str = m.replaceAll("");
    System.out.println(str);
String regex=“(?以下是您的答案:

    String regex = "(?<=[\\d])(,)(?=[\\d])";
    Pattern p = Pattern.compile(regex);
    String str = "Your input";
    Matcher m = p.matcher(str);
    str = m.replaceAll("");
    System.out.println(str);

String regex=“(?删除不需要的字符后,您可以先尝试使用任何数值类(整数、双精度等)解析字符串,如果解析成功,则该字符串为数值,您可以从原始字符串中删除不需要的字符

这里我使用了BigInteger,因为我不确定您的要求的精度

  public static String removeIfNumeric(final String s, final String toRemove) {
     final String result;
     if (isNumeric(s, toRemove)) {
         result = s.replaceAll(toRemove, "");
     } else {
         result = s;
     }
     return result;
  } 

  public static boolean isNumeric(final String s, final String toRemoveRegex) {
      try {
          new BigInteger(s.replaceAll(toRemoveRegex, ""));
          return true;
      } catch (NumberFormatException e) {
          return false;
      }
  }

删除不需要的字符后,您可以尝试首先使用任何数值类(整数、双精度等)解析字符串,如果解析成功,则该字符串为数值,您可以从原始字符串中删除不需要的字符

这里我使用了BigInteger,因为我不确定您的要求的精度

  public static String removeIfNumeric(final String s, final String toRemove) {
     final String result;
     if (isNumeric(s, toRemove)) {
         result = s.replaceAll(toRemove, "");
     } else {
         result = s;
     }
     return result;
  } 

  public static boolean isNumeric(final String s, final String toRemoveRegex) {
      try {
          new BigInteger(s.replaceAll(toRemoveRegex, ""));
          return true;
      } catch (NumberFormatException e) {
          return false;
      }
  }

与其删除逗号,不如用另一个字符(例如,点)替换它们。与其删除逗号,不如用另一个字符(例如,点)替换它们。谢谢Jim捕捉到了这一点。谢谢Jim捕捉到了这一点。