【问题标题】:How to get scanner to skip space in Java string如何让扫描仪跳过 Java 字符串中的空格
【发布时间】:2016-06-25 00:10:08
【问题描述】:

我正在尝试从文本文件中读取字符串,但它在第一个空格处停止。我想尝试用周围的 '$' 将字符串“分组”,但这不起作用。程序读入带有坐标和字符串的文件的一行。我需要它来读取这一行剩下的所有文本输入,并将其存储到一个字符串中。请并感谢您的帮助:)

Log.d(null, "scanning inputStream");
    try {
        do {
            String latlngString;
            String memory;
            //skip 'latlng:'
            scanner.skip("lat/lng:");
            //scan coordinates
            latlngString = scanner.next();

            double latitude = 0;
            double longitude = 0;
            if (latlngString != null) {
                latlngString = latlngString.startsWith("(") ? latlngString.substring(1) : latlngString;
                latlngString = latlngString.endsWith(")") ? latlngString.substring(0, latlngString.length() - 1) : latlngString;

                String[] latlng = latlngString.split(",");
                latitude = Double.parseDouble(latlng[0]);
                longitude = Double.parseDouble(latlng[1]);
            }
            //scan memory

            for(int i = 0;i<10;scanner.hasNext()){
            }
            memory = scanner.next();

            //this should remove the dollar signs from memory, and then save it as one string
            if(memory != null){
                memory = memory.startsWith("$") ? memory.substring(1) : memory;
                memory = memory.endsWith("$") ? memory.substring(0, memory.length() - 1) : memory;
                Log.d(null, latlngString + " " + memory);
            }
            //output of memory, latitude and longitude
        } while (scanner.hasNextLine());
    }catch(NoSuchElementException n){
        Log.wtf(null, "nosuchelement");
    }

【问题讨论】:

  • 我只是想阅读该行的第二部分。我把整条线都拉进去,然后把它分开
  • 您的代码将在第一个空格处停止,并且由于您的无限循环而不再继续:for (int i = 0; i &lt; 10; scanner.hasNext()) { }。迭代器变量 i 永远不会增加,所以它只会在那个循环中旋转,消耗 100% 的 CPU。

标签: java android java.util.scanner


【解决方案1】:

Scanner 类提供了一个nextLine() 方法来读取整行:

https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html#nextLine--

【讨论】:

    猜你喜欢
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    • 2011-08-23
    相关资源
    最近更新 更多