Java 输出字符串中最长的单词

方法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));
        }

        
    }
}

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值