Java 如何区分扫描文本中的文本和数字?

Java 如何区分扫描文本中的文本和数字?,java,android,ocr,Java,Android,Ocr,我正在使用Microsoft认知服务计算机视觉Api作为OCR服务来阅读食物菜单 我能够成功地扫描菜单,但现在我想将菜名部分和价格部分保存在两个不同的数组中 由于卢比符号、括号、菜单号等特殊字符,现在扫描后的结果完全被破坏了 我只想要菜名和价格,不要卢比。 有人能告诉我怎么才能做到吗? 以下是一些可以帮助您帮助我的代码: @Override protected void onPostExecute(String data) { super.onPostExecute(da

我正在使用Microsoft认知服务计算机视觉Api作为OCR服务来阅读食物菜单

我能够成功地扫描菜单,但现在我想将菜名部分和价格部分保存在两个不同的数组中

由于卢比符号、括号、菜单号等特殊字符,现在扫描后的结果完全被破坏了

我只想要菜名和价格,不要卢比。 有人能告诉我怎么才能做到吗? 以下是一些可以帮助您帮助我的代码:

@Override
    protected void onPostExecute(String data) {
        super.onPostExecute(data);
        // Display based on error existence

        if (e != null) {
            mEditText.setText("Error: " + e.getMessage());
            this.e = null;
        } else {
            Gson gson = new Gson();
            OCR r = gson.fromJson(data, OCR.class);

            String result = "";
            for (Region reg : r.regions) {
                for (Line line : reg.lines) {
                    for (Word word : line.words) {
                        result += word.text + " ";
                    }
                    result += "\n";
                }
                result += "\n\n";
            }

            mEditText.setText(result);
        }
        mButtonSelectImage.setEnabled(true);
    }
我想要的是:

1) 我不想让这些特殊的角色出现

2) 我想在两个不同的数组中保存菜名和菜价


我找到了答案,谢谢你们的帮助

我使用此正则表达式仅获取了个字符:

resultString = result.replaceAll("\\P{L}", " ");
resultNumber = result.replaceAll("[^\\d.]", "");
只有使用此正则表达式的数字:

resultString = result.replaceAll("\\P{L}", " ");
resultNumber = result.replaceAll("[^\\d.]", "");

表面使用模式。或者,若你们能提供样本文本,我可以建议更多。请提供你们得到的输出,它是否遵循模式。检查gson输出是否不受区域设置的影响非常重要。否则会更具挑战性。@SouravGanguly请参见编辑。屏幕截图添加在问题的底部。@MaherAbuthraa请参见编辑。屏幕截图添加在问题的底部。