java - 输出文件中最长和最短的文本,并发现回文不起作用?

标签 java

我已经部分编写了一个程序,该程序应该读取城市列表的文件,确定名称最长和最短的名称,并将其输出到单独的文件中。但是,我不明白为什么从城市列表中,它没有给我最长和最短的

import java.io.*;
import java.util.Scanner;
public class testing
{
    public static void main(String args[])throws IOException
    {
        Scanner sc = new Scanner(new File("C:/code/names.txt"));
        String city="", longest="", shortest="";
        int len=0, min = 0, max = 0;

        while(sc.hasNext())
        {
            city= sc.nextLine();
            len= city.length();
            if(len>max)
            {
                max=len;
                longest=city;
            }
            if(len<min)
            {
                min=len;
                shortest=city;
            }
        }
        System.out.println(longest + " is the longest name.");
        System.out.println(shortest + " is the shortest name.");
    }
}

文本文件中的城市列表为亚历山大、弗吉尼亚、奥罗拉、伊利诺伊、奥斯汀、基尼尼克、德克萨斯、波士顿、马萨诸塞州、钱德勒、亚利桑那、夏洛特、北卡罗来纳、达拉斯、代顿、俄亥俄、伊丽莎白、新泽西、尤金、俄勒冈、吉尔伯特、休斯顿、 jackson 、密西西比和格莱内尔格,我总是得到最长的输出是马萨诸塞州,最短的输出是空白/无,这是不正确的。我还想知道如何/在哪里可以将这段代码合并到我的代码中

import java.io.*;
import java.util.Scanner;
public class palindrome_demo
{
public static void main(String args[]) throws IOException
 {

    String s="";
    Scanner sc= new Scanner(new File("c:/code/names.txt"));
    while(sc.hasNextLine())
        {
            String word = sc.nextLine();

            for(int i = word.length() - 1; i >= 0; i--)
            {
                s = s + word.charAt(i);
            }

            if (word.equalsIgnoreCase(s))
            {
                System.out.println(word + " is a palindrome");
            }
            s="";
            }
        sc.close();
   }
}

它完美地找到文件中的回文,但我不确定将其放置在哪里而不使其无限循环。

TLDR;从文件读取时,我的代码没有给出正确的最长和最短单词,我想知道在哪里可以将单独的代码放入我的第一个代码中,以便它们可以一起运行。最后,我还想将所有这些信息(最长、最短和回文词)输出到一个单独的txt,但我不知道如何。

*编辑:anupamD 的响应帮助解决了我的字符串读取问题。我仍然想知道我可以将回文代码放在长度代码中的哪里。

最佳答案

因为这段代码:

int len=0, min = 0, max = 0;
.
.
if(len<min) { min=len; shortest=city; }

您需要初始化

min

做大事。可能是 Integer.MAX_VALUE。 由于 min 始终为零,因此上述条件每次都会失败。

关于java - 输出文件中最长和最短的文本,并发现回文不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60679408/

相关文章:

java - 两个字符串之间相等

java - 如何使用适用于 Java 的 Google Cloud 客户端库列出文件和文件夹

java - QuickSort(select)方法,ArrayIndex越界错误

java - android 在设备上保存非常小的数据的最佳方法

java - Jbutton 文本文件和数据库问题

java - 如何从非 Activity 线程调用 Activity ?

java - 优化 Hibernate 实体保存?

java - 在 NatTable 中创建更改事件监听器

java - 禁用 XML 中的自动 & 转义?

java - 我是否应该为可以从另一个参数查询的对象添加方法/构造函数参数