方法1:
import java.util.Scanner;
public class test3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 输入字符串
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String s =sc.nextLine();
// 按照空格切片,分别存入字符串数组
String []arr = s.split(" ");
// 得到第一个单词的长度
int maxWordLength = arr[0].length();
// 记录最长单词的位置
int maxWordIndex = 0;
// 遍历字符串数组
for (int i = 1;i<arr.length;i++){
// 如果i这个位置的字符串的长度比maxWordLength大
if(arr[i].length() > maxWordLength){
// 记录这个单词的最长长度
maxWordLength = arr[i].length();
// 记录这个单词的位置
maxWordIndex = i;
}
}
// 输出最长单词
System.out.println("此字符串中最长的单词为:"+arr[maxWordIndex]);
}
}
方法2:
import java.util.Scanner;
public class test2 {
public static void main(String[] args) {
// 输入
Scanner sc = new Scanner(System.in);
String str= sc.nextLine();
// 防止在最后没有输入空格
str+=' ';
// 记录最长字符串开头的位置
int maxlengthindex=0;
// 记录当前字符串的长度
int length=0;
// 记录最长字符串的长度
int maxlength=0;
// 记录单词的开头的位置
int l=0;
// r 遍历这个字符串
for(int r=0;r<str.length();r++)
{
// 如果到达了单词的结尾
if(str.charAt(r)==' ')
{
// 得到单词的长度
length=r-l;
// 如果当前的单词比最长的单词的长度长
if(length>maxlength)
{
// 更新最长单词的长度
maxlength=length;
// 记录最长单词的开头位置
maxlengthindex=l;
}
// 设置新单词的开头的位置
l=r+1;
}
}
// 输出最长单词。
for(int i=maxlengthindex;str.charAt(i)!=' ';i++)
{
System.out.print(str.charAt(i));
}
}
}