【发布时间】:2019-03-25 07:54:39
【问题描述】:
我是 Java 新手,我需要解决一个需要以下内容的练习:
对于用户输入的字符串,返回最大的单词(到目前为止这里很好)
但是,应该考虑到数字和符号不是文字。
例如:Hello, my name is Jonathan and my phone is 0123456789 应返回 "Jonathan" 作为最长单词。
示例 2:H3llo W0rld, Java 1s fun!,应返回 "Java" 作为最长单词。
在我的伪代码中,我想到了以下内容:
A) 请求用户输入。
B) 当输入无效时,循环。
C) 扫描输入
D) 用空格或记号分隔单词。
E) 如果 Word 只包含字母 A-Z && a-z,请执行以下代码:
e1) 用 for 检查最长的单词。
e2) 打印结果
F) else if: 移到下一个词。
这是我到目前为止的代码。如您所见,许多部分都取自这里并适应了代码。 “查找最长的数组”是一个流行的主题,但我无法检查字母字符。 欢迎任何帮助。
问题是我不知道如何实现检查字母的部分。
代码:
package longestword;
import java.util.Scanner;
public class LongestWord {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter a String: ");
//looping for non empty strings
int largestLength = 0;
String largestWord = "";
String userinput = sc.nextLine();
while (userinput.equals("")) {
System.out.println("Please insert a String: ");
userinput = sc.nextLine();
}
for (String b : userinput.split(" ")) {
if (largestWord.length() == 0) {
largestLength = b.length();
largestWord = b;
} else if (b.length() >= largestLength) {
largestLength = b.length();
largestWord = b;
}
}
sc.close();
System.out.println("Longest Word: " + largestWord);
}
public boolean isAlpha(String userinput) {
char[] chars = userinput.toCharArray();
for (char c : chars) {
if (!Character.isLetter(c)) {
return false;
}
}
return true;
}
}
/*
char c = '*';
if( (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
System.out.println(c + " is an alphabet.");
else
System.out.println(c + " is not an alphabet.");
}
}
*/
【问题讨论】:
-
你为什么不使用你的
isAlpha方法? -
我正在尝试,只是不知道如何实现它
标签: java arrays string character