首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StringTokenizer使用

StringTokenizer使用
EN

Stack Overflow用户
提问于 2015-10-02 08:43:59
回答 1查看 116关注 0票数 0

我正在尝试使用StringTokenizer来设置一个逗号作为分隔符,其中包含文件中的行,每个行都包含一个邮政编码和城市(e.x。01221,华盛顿特区),但我不希望第二个逗号作为分隔符,因为它是城市名称的一部分。我有两个类,我读入了邮政编码和城市名称,但我不确定如何正确使用记号赋予器来设置邮政编码和城市。我希望返回每个类的邮政编码和城市的一个数组,所以我不想将它们组合到一个类中。我也不确定是否应该将标记器放在我的main方法中。

代码语言:javascript
复制
public static String[] getZipCodes (File zips, Scanner hi, int d)
{
    //creating array of zip codes with the length of the number of lines
    String[] zipCodes=new String[d];
    //Loops through each zip code to fill the array
    for (int i=0; i<d; i++)
    {
        zipCodes[i]=hi.next();
        System.out.println(zipCodes[i]);
    }
    return zipCodes;
}

public static String[] getCities (File zips, Scanner hi, int d)
{
    //creating array of cities
    String[] cities=new String[d];
    //fills array with city names, parallel to its zip code
    for (int i=0; i<d; i++)
    {
        hi.next();
        cities[i]=hi.next();
        hi.nextLine();
    }
    return cities;
}

下面是主要的方法:

代码语言:javascript
复制
public static void main(String[] args) throws IOException {
    File zips=new File("ZipCodesCity.txt");
    //Scanner to count number of lines in file
    Scanner in=new Scanner(zips);

    //Counting number of zip codes
    int codenum=0;
    while (in.hasNextLine())
    {
        codenum++;
    }

    //making a second scanner to read in the zip codes
    Scanner hi= new Scanner(zips);

    //initializing array of zip codes
    String[]zipCodes=getZipCodes(zips, hi, codenum);

    //Tokenizer
    StringTokenizer wrd=new StringTokenizer(hi.nextLine(), ",");
}
EN

回答 1

Stack Overflow用户

发布于 2015-10-02 09:04:13

您的问题的一个变通解决方案是将正则表达式与字符串分词器一起使用。您只需要在第一个逗号上拆分,因为第二个逗号是城市名称的一部分。方便的是,第一个逗号总是在数字之后,因为邮政编码总是数字,而第二个逗号永远不会在数字之后,因为没有城市名称包含任何数字。因此,您的分隔符是任何后面跟着逗号的数字表达式。您可以参考this article来查看使用正则表达式和字符串记号赋予器的示例。

编辑更简单您可以只获取由前5个字符组成的子字符串,因为每个邮政编码的长度都是5,然后字符串的其余部分是城市和州。这种方法要简单得多

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32898919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档