【问题标题】:Parse string with characters and numbers in android [duplicate]在android中用字符和数字解析字符串[重复]
【发布时间】:2019-10-31 09:49:56
【问题描述】:

我有以下字符串,其中包含字符、数字以及额外的非数字字符。我设法替换了非数字字符。但是最后我迷失了字符和数字。我从以下方法中获取了这个字符串。我用这个方法去掉非数字的。

String[] stringArray = string.replaceAll("\\[", "").replaceAll("\\]", "").replaceAll("[^ A-Za-z0-9]","").trim().split(",");

"I7f253e0", "I6fc2699" 的结果。我该如何解析这个?

public static int[] string_to_int_arr(String string){

    String[] stringArray = string.replaceAll("\\[", "").replaceAll("\\]", "").replaceAll("[^ A-Za-z0-9]","").trim().split(",");

    int[] intArray = new int[stringArray.length];

    for (int i = 0; i < stringArray.length; i++){
        try {
            intArray[i] = Integer.parseInt(stringArray[i]);
        } catch (NumberFormatException e){
            Log.e(TAG,"" + e);
        }
    }
    return intArray;
}

【问题讨论】:

  • 删除所有操作并使用 Arrays.toString(myarray)
  • 操作?你的意思是。你能更具体一点吗:)
  • 你确定有这种字符串是正常的吗?这看起来像一个对象引用。我看不出有人可以用修改后的引用字符串做什么
  • 你开头使用的字符串,是什么?它从何而来 ?不应该是这样的
  • @azro 我刚刚更新了我的问题。请看一下

标签: java arrays parsing int


【解决方案1】:

我认为这不会有帮助,但无论如何,如果您想删除所有非数字,只需执行以下操作:

String x = "[I@7f253e0";
String y = x.replaceAll("\\D", "");
System.out.println(y);

//72530

【讨论】:

  • 虽然这样可行,但这不是正确答案,因为 72530 与原始 int 数组无关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-03
  • 1970-01-01
  • 2011-08-01
  • 1970-01-01
相关资源
最近更新 更多