Java 接受5个名称并打印最长的名称?
我想为5个给定的名字取最长的名字。我想我应该使用Java 接受5个名称并打印最长的名称?,java,compareto,string-length,Java,Compareto,String Length,我想为5个给定的名字取最长的名字。我想我应该使用compareTo()方法还是length() 输出必须如下所示: enter 5 names : Joey Mark Catherine Zachery Foster Longest name is Catherine. 我应该使用什么方法以及如何使用?这是我目前的代码: Scanner x = new Scanner(System.in); String name = "" System.out.print("Enter 5 names")
compareTo()
方法还是length()
输出必须如下所示:
enter 5 names :
Joey
Mark
Catherine
Zachery
Foster
Longest name is Catherine.
我应该使用什么方法以及如何使用?这是我目前的代码:
Scanner x = new Scanner(System.in);
String name = ""
System.out.print("Enter 5 names");
name = x.nextLine();
name2 = x.nextLine();
name3 = x.nextLine();
name4 = x.nextLine();
name5 = x.nextLine();
if(name.compareTo(name2)>0) //is this method right?
.compareTo
告诉您哪个字符串按字典顺序排在第一位(如果s1>s2,则为0)
在您的情况下,您需要基于长度进行比较,因此您需要后者。如果只有5个名字,你可以取第一个并假设它是最长的,然后通过保存“迄今为止最长的”并在它们出现时进行比较,逐一阅读其他名字。毕竟,你只在乎最长的
如果您希望按长度对它们进行排序,同时仍然保留它们,则需要将它们存储在某种集合(列表、数组)中,然后根据长度进行排序
这个问题很简单,所以我不会直接提供代码,试着自己摸索,你可以做到:)这里有一个解决方案,可以处理任意数量的条目:
Scanner x = new Scanner(System.in);
String name = "", temp="";
while (x.hasNextLine()){
temp = x.nextLine();
if (temp.length() > name.length()) name = temp;
}
System.out.println("Longest is " + name);
您需要按住Ctrl键来结束Windows上的输入流,这是怎么回事
Scanner in = new Scanner(System.in);
// no need to have 5 all over the code.
// Define it once to avoid "magic nubmers"
int namesCount = 5;
// fun fact: shortest name is always "". We don't have to use null
String longestName = "";
System.out.print("Enter " + nameCount + " names:");
for (int i=0; i< nameCount; i++){
// store new name from user
String candidate = in.readLine();
// is this one longer than the current longest?
if (longestName.length() < candidate.length()){
// found a longer name
longestName = candidate;
}
}
System.out.println("Longest name is " + longestName);
Scanner-in=新的扫描仪(System.in);
//不需要在整个代码上都有5个。
//定义一次,以避免“神奇的数字”
int namesCount=5;
//有趣的事实:最短的名字总是“”。我们不必使用null
字符串longestName=“”;
系统输出打印(“输入”+名称计数+”名称:);
对于(int i=0;i
这样就不用存储名称了,因为似乎您只使用最长的名称。它还概括了要迭代的名称的数量,最重要的是变量名称是有意义的名称。一个简单的方法是使用
for
循环读取5个名称并找到最大名称的长度。使用for
循环可避免创建5个字符串变量
如果以后要使用这些名称,可以选择String
array
public static void main(String[] args) throws IOException {
Scanner x = new Scanner(System.in);
String name = "";
String maxName = "";
int maxLength = 0;
System.out.println("enter 5 name :");
for (int i = 0; i < 5; i++) { // read 5 names
name = x.nextLine();
if (maxLength < name.length()) { // check longest name
maxLength = name.length();
maxName = name; // store in temp variable to show
}
}
System.out.println("Longest name is " + maxName); // print largest name
}
publicstaticvoidmain(字符串[]args)引发IOException{
扫描器x=新扫描器(System.in);
字符串名称=”;
字符串maxName=“”;
int maxLength=0;
System.out.println(“输入5个名称:”);
对于(inti=0;i<5;i++){//读取5个名称
name=x.nextLine();
如果(maxLength
输出:
输入5个名称:raj
sita
吉塔
慕克吉
丽塔
最长的名字是慕克吉
以下是一个可行的解决方案:
public class LongestWord {
public static String getLongestString(String[] array) {
int maxLength = 0;
String longestString = null;
for (String s : array) {
if (s.length() > maxLength) {
maxLength = s.length();
longestString = s;
}
}
return longestString;
}
public static void main(String[] args) {
String[] toppings = {"Cheeddddddddddse", "Pepperoni", "Black Olivesddd"};
String longestString = getLongestString(toppings);
System.out.format("longest string: '%s'\n", longestString);
}
}
这是我的代码,用于比较3个输入字符串的长度:
public static void main(String[] args) {
String string1 , string2 , string3;
Scanner input = new Scanner(System.in);
System.out.println("Enter three string names to compare");
string1 = input.nextLine();
string2 = input.nextLine();
string3 = input.nextLine();
if (string1.length()>string2.length()) {
if (string1.length() > string3.length())
System.out.println("String 1 has the longest length , length = "+string1.length());
}
if (string2.length()>string1.length()){
if(string2.length()>string3.length())
System.out.println("String 2 has the longest length , length = "+string2.length());
}
if (string3.length()>string1.length()) {
if (string3.length() > string2.length())
System.out.println("String 3 has the longest length , length = " + string3.length());
}
}
//简单JAVA解决方案
GFG类
{
字符串最长(字符串名称[],int n)
{
字符串res=“”;
对于(int i=0;i您应该使用String#length()
和for loop
:)@lostMind和数据结构(数组,列表…)@ReutSharabani-可能是,但不是必需的。您可以找到当前和姓氏中的较大者:)longest=Collections.max(Arrays.asList(name,name2…),Comparator.comparating(String::length))
。关键是将它们存储在name
,name1
…namen
中不是一种很好的存储方式。这不是一种很好的存储数据的方式。如果你完全放弃存储它们,那么不需要存储最长的名称。它不能与任何数字一起工作,因为它甚至不会编译。你是如何尝试的你的代码?现在可以编译了。但是你也应该添加关于关闭输入流的信息。因为OP看起来很新,她可能不知道。
import java.util.Scanner;
public class LenghtyName {
public static void main(String[] args) {
Scanner x = new Scanner(System.in);
/*
Instead of declaring 5 different String variable
just use String array with size = 5
*/
String[] names = new String[5];
System.out.print("Enter 5 names :");
names[0] = x.nextLine();
names[1] = x.nextLine();
names[2] = x.nextLine();
names[4] = x.nextLine();
names[5] = x.nextLine();
//Assume lenthyName as empty String
String lengthyName = "";
/*
Iterate over String array using for-each loop
*/
for (String name : names) {
/*
-Check null to avoid NullPointerException
-Trim the left and right blank space in name by #trim()
-Compare current name length with lengthyName if greater
replace the lengthyName by current name.
*/
if (name != null && name.trim().length() > lengthyName.length()) {
lengthyName = name;
}
}
/*
Print length name
*/
System.out.println("Longest name is " + lengthyName);
}
}
public class LongestWord {
public static String getLongestString(String[] array) {
int maxLength = 0;
String longestString = null;
for (String s : array) {
if (s.length() > maxLength) {
maxLength = s.length();
longestString = s;
}
}
return longestString;
}
public static void main(String[] args) {
String[] toppings = {"Cheeddddddddddse", "Pepperoni", "Black Olivesddd"};
String longestString = getLongestString(toppings);
System.out.format("longest string: '%s'\n", longestString);
}
}
public static void main(String[] args) {
String string1 , string2 , string3;
Scanner input = new Scanner(System.in);
System.out.println("Enter three string names to compare");
string1 = input.nextLine();
string2 = input.nextLine();
string3 = input.nextLine();
if (string1.length()>string2.length()) {
if (string1.length() > string3.length())
System.out.println("String 1 has the longest length , length = "+string1.length());
}
if (string2.length()>string1.length()){
if(string2.length()>string3.length())
System.out.println("String 2 has the longest length , length = "+string2.length());
}
if (string3.length()>string1.length()) {
if (string3.length() > string2.length())
System.out.println("String 3 has the longest length , length = " + string3.length());
}
}
//SIMPLE JAVA SOLUTION
class GFG
{
String longest(String names[], int n)
{
String res="";
for(int i=0;i<n;i++)
{
if(res.length()<names[i].length())
{
res=names[i];
}
}
return res;
}
}