如何从地址字符串中分离州,城市,邮政编码,国家等?

如何解决如何从地址字符串中分离州,城市,邮政编码,国家等?

| 我想分隔街道,城市,州,国家/地区,邮政编码
String = Kanaka,Ranchi,zalkhand,10001,India

public class Test extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        StringTokenizer st = new StringTokenizer(\" Kanaka,India\"); 
        System.out.println(\"Tokens are seperated\");
        int i=0;
        String street,city,state,zipcode,country;
        while(st.hasMoreTokens())
        {

                if(i==0)
                {
                        street = st.nextToken(\",\");
                   System.out.println(\"street =\"+street);
                   i++;
                }
                else if(i==1)
                {
                       city = st.nextToken(\",\");
                        System.out.println(\"city= \"+city);
                        i++;
                }
                else if(i==2)
                {
                       state = st.nextToken(\",\");
                        System.out.println(\"state =\"+state);
                        i++;
                }
                else if(i==3)
                {
                        zipcode = st.nextToken(\",\");
                        System.out.println(\"zipcode= \"+zipcode);
                            i++;
                }
                else if(i==4)
                {
                        contry = st.nextToken(\",\");
                        System.out.println(\"country= \"+country);
                        i++;
                }

        }

    }
}
输出是:
06-23 09:23:37.070: INFO/System.out(435): street = Kanaka
06-23 09:23:37.080: INFO/System.out(435): city=  Ranchi
06-23 09:23:37.080: INFO/System.out(435): state = zalkhand
06-23 09:23:37.080: INFO/System.out(435): zipcode=  10001
06-23 09:23:37.080: INFO/System.out(435): country=  India
上面的代码可以很好地与String \“ Kanaka,Ranchi,zalkhand,10001,India \”一起使用 我的问题是我从xml解析格式不正确的地址字符串
ex. 1) \"Kanaka,India\"

    2) \"Ranchi,India\"   ---> kanaka(street is absent )
输出:     06-23 09:23:37.070:INFO / System.out(435):街道=兰契     06-23 09:23:37.080:INFO / System.out(435):city = zalkhand     06-23 09:23:37.080:INFO / System.out(435):状态= 10001     06-23 09:23:37.080:INFO / System.out(435):邮政编码=印度     06-23 09:23:37.080:INFO / System.out(435):国家=
    3) \"zalkhand,India\"
    4) Kanaka zalkhand,India\" (,is missing )
像这样 那么如何分隔以上字符串呢?     

解决方法

        您可以创建一个数组,并在解析地址String之后使用StringTokenizer将令牌放入该数组中,但是通过该方法您将无法区分哪个城市或邮政编码。 这非常困难,因此请尝试使XML格式正确。例如,如果不存在City,请输入默认值,以便您可以将其用作不存在的字段。     ,        令牌和拆分是必要的,但还不够。 您的问题是,如果遇到多令牌项目,则您和您的程序都需要足够的上下文来理解一个令牌的结尾和下一个令牌的开始。 在美国,这是同样的问题。鉴于此地址:
100 Main Street San Francisco CA 09654
您的大脑有足够的背景信息来知道“旧金山”是城市,州代码是“ CA”,但是您如何告诉计算机程序如何做呢? 您需要一个解析器,该解析器对地址是什么有更多的了解。如果分隔符勾勒出每个项目的开始和结束位置,这将有所帮助,因此多令牌项目将不是问题。 您可以使用明确的令牌定界符解决此问题:
100 Main Street~San Francisco~CA~09654
在\“〜\”处拆分,一切都很好。     ,        您应该创建一个解析器,该解析器应该包含五个输入。如果缺少某些数据,则替换为null 1)“印度的卡纳卡语,兰契,扎尔肯德邦,10001” 2)null,\“ Ranchi,zalkhand,10001,印度\” //如果缺少街道 3)\“ Kanaka,null,zalkhand,10001,印度\” //如果缺少城市 将此类型的值传递给StringTokenizer。     ,        如前所述,您需要一种解析XML的正确方法,其他所有方法都将很容易。     ,        mport java.util.StringTokenizer; 导入android.app.Activity; 导入android.os.Bundle;
public class Test extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);


StringTokenizer st = new StringTokenizer(\"koch,Ranchi,zalkhand,NY,10001,India\",\",\"); 
        int numberOfToken = st.countTokens();
        System.out.println(\"Tokens are seperated\");
        int i=0;
        String address[] = new String[numberOfToken];

         String contlocation=\"\";
         String contfirst_street=\"\";
         String contsecond_street=\"\";
         String contcity=\"\";
         String contstate=\"\";
         String contzipcode=\"\";
         String contcountry=\"\";


      /*  while(st.hasMoreTokens())
        {

          */      

              for(i=0;i<numberOfToken;i++)
              {
                    address[i] = st.nextToken();
                   System.out.println(\"address \"+i+\": \"+address[i]);
              }

              if(numberOfToken==7)
              {

                  System.out.println(\"\\n-------------address.length==7--------------------\");

                  contlocation=address[0];
                  System.out.println(\"contlocation :\"+contlocation);

                  contfirst_street=address[1];
                  System.out.println(\"contfirst_street :\"+contfirst_street);

                  contsecond_street=address[2];
                  System.out.println(\"contsecond_street :\"+contsecond_street);

                  contcity=address[3];
                  System.out.println(\"contcity :\"+contcity);

                  contstate=address[4];
                  System.out.println(\"contstate :\"+contstate);

                  contzipcode=address[5];
                  System.out.println(\"contzipcode :\"+contzipcode);

                  contcountry=address[6];
                  System.out.println(\"contcountry :\"+contcountry);

                  System.out.println(\"\\n-------------address.length==7--------------------\");
              }
              else if(numberOfToken==6)
              {
                  System.out.println(\"\\n-------------address.length==6--------------------\");

                  contlocation=\"\";
                  System.out.println(\"contlocation :\"+contlocation);

                  contfirst_street=address[0];
                  System.out.println(\"contfirst_street :\"+contfirst_street);

                  contsecond_street=address[1];
                  System.out.println(\"contsecond_street :\"+contsecond_street);

                  contcity=address[2];
                  System.out.println(\"contcity :\"+contcity);

                  contstate=address[3];
                  System.out.println(\"contstate :\"+contstate);

                  contzipcode=address[4];
                  System.out.println(\"contzipcode :\"+contzipcode);

                  contcountry=address[5];
                  System.out.println(\"contcountry :\"+contcountry);

                  System.out.println(\"\\n-------------address.length==6--------------------\");
              }
              else if(numberOfToken==5)
              {
                  System.out.println(\"\\n-------------address.length==5--------------------\");

                  contlocation=\"\";
                  System.out.println(\"contlocation :\"+contlocation);

                  contfirst_street=address[0];
                  System.out.println(\"contfirst_street :\"+contfirst_street);

                  contsecond_street=\"\";
                  System.out.println(\"contsecond_street :\"+contsecond_street);

                  contcity=address[1];
                  System.out.println(\"contcity :\"+contcity);

                  contstate=address[2];
                  System.out.println(\"contstate :\"+contstate);

                  contzipcode=address[3];
                  System.out.println(\"contzipcode :\"+contzipcode);

                  contcountry=address[4];
                  System.out.println(\"contcountry :\"+contcountry);

                  System.out.println(\"\\n-------------address.length==5--------------------\");
              }

              else if(numberOfToken==4)
              {
                  System.out.println(\"\\n-------------address.length==4--------------------\");

                  contlocation=\"\";
                  System.out.println(\"contlocation :\"+contlocation);

                  contfirst_street=address[0];
                  System.out.println(\"contfirst_street :\"+contfirst_street);

                  contsecond_street=\"\";
                  System.out.println(\"contsecond_street :\"+contsecond_street);

                  contcity=address[1];
                  System.out.println(\"contcity :\"+contcity);

                  contstate=address[2];
                  System.out.println(\"contstate :\"+contstate);

                  contzipcode=\"\";
                  System.out.println(\"contzipcode :\"+contzipcode);

                  contcountry=address[3];
                  System.out.println(\"contcountry :\"+contcountry);

                  System.out.println(\"\\n-------------address.length==4--------------------\");
              }

              else if(numberOfToken==3)
              {
                  System.out.println(\"\\n-------------address.length==3--------------------\");

                  contlocation=\"\";
                  System.out.println(\"contlocation :\"+contlocation);

                  contfirst_street=address[0];
                  System.out.println(\"contfirst_street :\"+contfirst_street);

                  contsecond_street=\"\";
                  System.out.println(\"contsecond_street :\"+contsecond_street);

                  contcity=address[1];
                  System.out.println(\"contcity :\"+contcity);

                  contstate=\"\";
                  System.out.println(\"contstate :\"+contstate);

                  contzipcode=\"\";
                  System.out.println(\"contzipcode :\"+contzipcode);

                  contcountry=address[2];
                  System.out.println(\"contcountry :\"+contcountry);

                  System.out.println(\"\\n-------------address.length==3--------------------\");
              }
}
    }
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-