gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 18:13:00 25 4
gpt4 key购买 nike

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

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com