java - 关于数组列表

标签 java

我使用扫描仪而不是字符串标记器,下面是一段代码......

Scanner scanner =  new Scanner("Home,1;Cell,2;Work,3");
scanner.useDelimiter(";");
while (scanner.hasNext()) {
    // System.out.println(scanner.next());
    String phoneDtls = scanner.next();

    // System.out.println(phoneDtls);
    ArrayList<String> phoneTypeList = new ArrayList<String>();
    if(phoneDtls.indexOf(',')!=-1) {

        String value = phoneDtls.substring(0, phoneDtls.indexOf(','));

        phoneTypeList.add(value);

    }

    Iterator itr=phoneTypeList.iterator();
    while(itr.hasNext())
        System.out.println(itr.next());
}

执行此命令后我得到的输出... 家 细胞 工作

从上面的代码可以看出,我们最终在数组列表phoneTypeList中存储了值..但是根据','找出值的逻辑并不是那么好..那就是..

if(phoneDtls.indexOf(',')!=-1) {
    String value = phoneDtls.substring(0, phoneDtls.indexOf(','));
    phoneTypeList.add(value);
}

您能告诉我其他选择吗..!!实现同样的目标...!!提前非常感谢..!!

最佳答案

好吧,既然您问是否有其他方法可以做到这一点,那么这里有一个替代方法:您可以直接拆分字符串,并使用 foreach 使用更少的代码来完成此操作。声明:

String input = "Home,1;Cell,2;Work,3";

String[] splitInput = input.split(";");

for (String s : splitInput ) {

    System.out.println(s.split(",")[0]);

}

无需使用 ArrayList<T>因为您也可以迭代数组。

关于java - 关于数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10060843/

相关文章:

java - 从 java Runtime.exec 读取流

java - 如何教导 Apache CXF JAX-WS 客户端使用的 JAXB 解码非类型化属性中的 {http ://microsoft. com/wsdl/types/}guid 值?

java - HttpClient.execute 抛出 OutOfMemoryError

java - 标准化图像亮度和饱和度

java - 如何在数字序列中交替使用正整数和负整数

java - SSL 和套接字 channel

java - TextView 未在 Android 中更新

java - 实现定义为接口(interface)的泛型类

java - 未找到 Jersey 类...但它就在那里

java - Spring捕获异常实现逻辑分支的案例有哪些?