Java 蓝桥杯校赛 谁最长?
admin
2024-02-04 14:45:52
0

Java 蓝桥杯校赛 谁最长?

    • 题目描述
    • 解题思路
    • 代码

题目描述

英语老师每天都会布置很多例句练习,并且让同学们找到例句中最长的单词进行背诵。

很多同学都懒得去数数,找出最长的单词。请你写一个程序,能够找出一个英文长句中最长的单词,并原样输出它。

如果发现一个句子中有多个单词的长度并列最长,则输出并列最长的单词们中从左向右找到的第一个。

而且,如果这个单词伴随标点符号,标点符号是在单词右侧表示句子结束的符号(除一对双引号和单引号外的符号),则该标点符号不计入单词长度。

比如:

Jackson’s hat is red.中,Jackson’s的单引号是在单词中间,表示所有格,这是一个完整的表述,因此Jackson’s看做一个单词,长度是9。

Jenny holds a broom.中,Jenny和broom长度一样,选择Jenny输出为结果。broom后的英文句号此时不计入单词长度。

Tim has a ‘wonderful’ headphone.中,wonderful和headphone都是9个字母,但是wonderful被两个单引号或双引号包含,则最长的单词是’wonderful’,单引号计入长度,长度为11。

但如果是’Good idea’, Tom says.这样,用单引号或双引号包含的多个单词,则该单引号或双引号不计入单词长度,该句子输出Good

更多例子:

Margaret’s toy is a pretty doll ➞ Margaret’s

A thing of beauty is a joy forever. ➞ forever

Forgetfulness is by all means powerless! ➞ Forgetfulness

解题思路

主要考察的就是 模拟判断 由题可以分析出需要考虑的条件有:
1.在单个单词中的 表示所有格 可以看作为一个字符。
2.若长度相同的单词有多个则输出最先出现的单词。
3.若单个单词被’ '或" "包含 则也算作单词的长度。
4.若单个单词只有左边或者右边含有 ’ 或者 " 则删除对应的 '或"。
5.而在单词右侧的标点符号如: ,和 . 以及!和?不计入单词长度 也应删除。
具体思路
1.由于是直接输入一串字符所以用String类型m来接收。
2.用split函数按照空格来切分放入String数组n中。
3.建立一个int数组x来存储每个单词的长度(在这之前要先经过上面的条件判断和调整),并用Arrays.sort(x)进行升序排列
4.再次循环输出n中每个字符串的长度直到有字符的长度等于n[n.length-1].结束循环输出该字符串。
注意事项
由于字符类型需要用’ '包含所以单引号的判断需要使用到转义字符 \ ,eg:‘\’'才表示选取到了单引号

代码

import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner=new Scanner(System.in);String m=scanner.nextLine();            //接收字符串if (m.equals("")){                      //判断是否为空 若为空直接输出0System.out.print(0);}else {String []n=m.split(" ");     //若不为空按空格切分 int []x=new int[n.length];         //创建int类型数组 接收每个单词的长度for (int i=0;ichar [] ch=n[i].toCharArray();  //把每个字符串转为字符数组依次判断n[i]=n[i].replace(",","");  //删除无效的字符n[i]=n[i].replace(".","");if (ch[ch.length-1]=='?'){n[i]=n[i].replace("?","");}else if (ch[ch.length-1]=='!'){n[i]=n[i].replace("!","");}for (char c : ch) {             //判断单词是否被' '或" "包含if (c == '\'') {if (ch[ch.length - 1] != '\'')n[i]=n[i].replace("'",""); //删除单个 单引号break;} else {if (ch[ch.length - 1] == '\'')n[i]=n[i].replace("'","");break;}}x[i] = n[i].length();           //得到最后的单词长度 加入到整形数组}Arrays.sort(x);                     //升序排列int y=x[x.length-1];                //最长单词的长度for (String s : n) {                //依次判断 得到最长的输出 并结束循环if (y == s.length()) {System.out.print(s);break;}}}}
}

相关内容

热门资讯

请大家给我介绍好听的歌曲,dj... 请大家给我介绍好听的歌曲,dj也行迈克尔杰克逊
心伤透了是不是就没心了! 心伤透了是不是就没心了!可爱的楼主,当然不是啊。你现在的心,无非是被那个把你的心伤透了的人带走了。如...
仙剑奇侠传3中的主要人物是谁扮... 仙剑奇侠传3中的主要人物是谁扮演的景天——胡歌长卿——霍建华雪见——杨幂紫萱——唐嫣花楹——郭晓婷胡...
夏河洛洛是什么时候开始恋爱的? 夏河洛洛是什么时候开始恋爱的?大概07年吧。在一起近三年,大概推算的
我大话2想玩男人 现在已经两世... 我大话2想玩男人 现在已经两世男魔了 我是平民 接下来怎么转 怎么玩?主要想玩混男人嗯两世男魔转男人...
爱(艾)滋病在空气中生存时间 爱(艾)滋病在空气中生存时间放心吧,爱(艾)滋病在空气中是不能生存的
放羊的星星中所有的歌曲叫什么名... 放羊的星星中所有的歌曲叫什么名字01极速爱情-李雅微02对望-林志颖03paradise-李雅微04...
MAS曳步舞 是什么意思? MAS曳步舞 是什么意思?是一种风格,巴西风格的马来西亚风格
死神是神还是鬼脑筋急转弯 死神是神还是鬼脑筋急转弯鬼。死神是地狱的使者,说他是鬼不恰当,说他是神又没到那境界,但是说白了他就是...
科学练习册(牛津上海版)七年级... 科学练习册(牛津上海版)七年级上第九章电力与电信答案跪求啊~~17~36 D B A C C D C...
加刘三姐对歌歌词 加刘三姐对歌歌词 “男方:什么水面打跟斗呢,什么水面起高楼呢,什么水面撑阳伞,什么水面共白头?刘三姐...
怒与什么什么的成语 怒与什么什么的成语 怒开头的成语:怒不可遏、怒火中烧、怒气冲冲、怒形于色、怒气冲天、怒火冲天、怒...
女孩,姓王,阳历2008年3月... 女孩,姓王,阳历2008年3月7日,出生时间:下午16:52分, 请高人按生辰八字起名!急 急八字:...
NO是表示没有吗? NO是表示没有吗?表示否定的意思,没有,不是,无等等。
有没有盗墓的爱情小说 最好是悲... 有没有盗墓的爱情小说 最好是悲伤的 男主很冷的那种《我不是粽子,是个杯具》言情男主有点像小哥,呆呆冷...
《基础教育研究》和《教育探索》... 《基础教育研究》和《教育探索》这两本杂志哪个好一些?这要看你需要什么了。一个是侧重基础教育应用性。一...
店铺歇业语怎么写 店铺歇业语怎么写快回家过年了…小吃店歇业了…怎么写歇业语新年将至,正味餐饮谨此向大家致以新春的问候,...
不倾城不倾国是什么意思? 不倾城不倾国是什么意思?倾国倾城说的是女人长得好看;不倾国不倾城就是说长得不好看!意思就是长的不好看...
忏悔文全文 忏悔文全文往昔所造诸恶业皆由无始贪嗔痴从身语意之所生一切我今皆忏悔我今悉以清净三业,遍于法界极微尘刹...
海文考研的专业课怎么样啊? 海文考研的专业课怎么样啊?请问有人上过海文专业课的辅导班吗?我实在找不到专业课资料,而专业课辅导班又...