java如何从一串字符串中拆分出姓名地址和电话号码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java如何从一串字符串中拆分出姓名地址和电话号码相关的知识,希望对你有一定的参考价值。

参考技术A 用正则表达式的话,先分析数据的格式,然后针对性的写正则表达式,再匹配出来就可以了。
如果用String的方法的话,重点用spilt分割字符串,以及replace方法,替换不需要的字符,也可以得到。
因为没有给出例子,可能说得比较抽象。
参考技术B 要看你的字符串是不是有没有什么关键字标识地址和电话号码,你可以在提供的数据中提前加上关键字来区分,这样容易拆分出姓名地址和电话号码。 参考技术C 拆分,那么你就要先找字符串是否有什么规律。如果没有规律的话,想拆分出来,是很难的 参考技术D string.substring()方法研究一下

如何从 Android 中的 Vision OCR 结果文本中提取姓名、电话号码和电子邮件地址?

【中文标题】如何从 Android 中的 Vision OCR 结果文本中提取姓名、电话号码和电子邮件地址?【英文标题】:How to Extract Name,Phone Number and Email Address From Vision OCR result text in Android? 【发布时间】:2017-05-05 13:36:47 【问题描述】:

这是我想要获取详细信息的示例代码...

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    if (requestCode == PHOTO_REQUEST && resultCode == RESULT_OK) 
        launchMediaScanIntent();
        try 
            Bitmap bitmap = decodeBitmapUri(this, imageUri);
            if (detector.isOperational() && bitmap != null) 
                Frame frame = new Frame.Builder().setBitmap(bitmap).build();
                SparseArray<TextBlock> textBlocks = detector.detect(frame);
                String blocks = "";
                String lines = "";
                String words = "";
                for (int index = 0; index < textBlocks.size(); index++) 
                    //extract scanned text blocks here
                    TextBlock tBlock = textBlocks.valueAt(index);
                    blocks = blocks + tBlock.getValue() + "\n" + "\n";
                    for (Text line : tBlock.getComponents()) 
                        //extract scanned text lines here
                        lines = lines + line.getValue() + "\n";

                        for (Text element : line.getComponents()) 
                            //extract scanned text words here
                            words = words + element.getValue() + ", ";
                        
                    
                


                if (textBlocks.size() == 0) 
                    scanResults.setText("Scan Failed: Found nothing to scan");
                 else 
                    scanResults.setText(scanResults.getText() + "Blocks: " + "\n");
                    scanResults.setText(scanResults.getText() + blocks + "\n");
                    scanResults.setText(scanResults.getText() + "---------" + "\n");
                    scanResults.setText(scanResults.getText() + "Lines: " + "\n");
                    scanResults.setText(scanResults.getText() + lines + "\n");
                    scanResults.setText(scanResults.getText() + "---------" + "\n");
                    scanResults.setText(scanResults.getText() + "Words: " + "\n");
                    scanResults.setText(scanResults.getText() + words + "\n");
                    scanResults.setText(scanResults.getText() + "---------" + "\n");
                
             else 
                scanResults.setText("Could not set up the detector!");
            
         catch (Exception e) 
            Toast.makeText(this, "Failed to load Image", Toast.LENGTH_SHORT).show();
            Log.e(LOG_TAG, e.toString());
        
    

【问题讨论】:

你找到解决办法了吗? 你有解决方案吗?也请帮我解决。 【参考方案1】:

你有很好的库来解析链接(电子邮件、网站等),比如 org.nibor.autolink 关于数字,您可以查看 libphonenumber。它由google提出并被android使用。如果您提供国家/地区,它可以为您解析任何格式的数字。

关于名字很难。如果您仅在一个国家/地区使用您的应用程序,您可以使用名称创建一个数据库(在法国,我们在 opendata 中有一个由公共服务提出的文件),但它不会是完整的......

【讨论】:

@Geoffrey,请您将 sdk 或任何用于解析文本的库的链接发给我。 你好拉胡尔。我已经把它们放好了。你有mvnrepository.com/artifact/com.googlecode.libphonenumber/… 和mvnrepository.com/artifact/org.nibor.autolink/autolink

以上是关于java如何从一串字符串中拆分出姓名地址和电话号码的主要内容,如果未能解决你的问题,请参考以下文章

如何显示可以从一串数字创建的所有IP地址组合?

EXCEL,怎么样可以从一串字符中的某个指定位置截取字符.

用Java验证姓名,年龄,电话怎么写。

MySQL数据库,字符串字段拆分

如何在android studio中显示按地址排序的联系人姓名和号码

如何从 Android 中的 Vision OCR 结果文本中提取姓名、电话号码和电子邮件地址?