目录

一、题目

二、思路

nextLine( ) 前面不能出现 nextInt( ) 或 next( ):

三、代码


一、题目

题目:收件人列表       题目链接:收件人列表

NowCoder每天要给许多客户写电子邮件。正如你所知,如果一封邮件中包含多个收件人,收件人姓名之间会用一个逗号和空格隔开;如果收件人姓名也包含空格或逗号,则姓名需要用双引号包含。
        现在给你一组收件人姓名,请你帮他生成相应的收件人列表。

输入描述:
        输入包含多组数据。

每组数据的第一行是一个整数n (1≤n≤128),表示后面有n个姓名。

紧接着n行,每一行包含一个收件人的姓名。姓名长度不超过16个字符。

输出描述:
        对应每一组输入,输出一行收件人列表。
输入
3
Joe
Quan, William
Letendre,Bruce
2
Leon
Kewell
输出
Joe, "Quan, William", "Letendre,Bruce"
Leon, Kewell

二、思路

观察题目要求及用例,发现本题实质上是对输入的字符串进行处理输出的问题。可以使用 List 存放每行的收件人,最后利用字符串拼接 join 方法进行输出。

在将每行的数据放入的过程中,进行判断:当数据中包含“  , ”或者“   ”,就将前后加上“”再放入List中。判断数据是否包含“  , ”或者“   ”的方法使用 contains() 方法。

注意:

在这个题目的输入中,既有 int 类型又有 String 类型,我们就要 nextInt() 和 nextLine() 的问题。

String next​( ): 键盘录入任意符号(读取到空格外的有效字符后,回车结束,但只录取空格之前的有效字符
String nextLine( ): 键盘录入一行,回车结束(录入什么就是什么)
int nextInt( ) :键盘录入一个整数,回车结束(只要整数,否则报异常)

nextLine( ) 前面不能出现 nextInt( ) 或 next( ):

因为 nextInt( ) 以回车作为结尾标志且它会把回车符留在内存中,当使用 nextInt( ) 录入一个整数按下回车后,整数被 nextInt( ) 读取,回车符会留在内存,如果 nextInt( ) 后面有 nextLine( ) 时,这个回车符便会直接被 nextLine( ) 读取。

解决方法:

在使用 next( )读取完一个整数后,因为有回车符在内存中,所以我们先使用 nextLine( ) 将这个回车符从内存中读取出来,然后再正常使用 nextLine() 读取要读取的数据。

三、代码

代码比较简单,重点是 next( ) 后面 nextLine( ) 的处理。

import java.util.*;/*** Created with IntelliJ IDEA.* Description:收件人列表* User: WangWZ* Date: 2023-04-14* Time: 11:22*/
public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);while(sc.hasNext()){int n = sc.nextInt();sc.nextLine(); //将回车接收掉(从内存中拿走)List<String> list = new ArrayList<>();for(int i = 0; i < n; i++) {String str = sc.nextLine();String str2 = str;if(str.contains(",")||str.contains(" ")) {str2 = "\"" + str + "\"";}list.add(str2);}System.out.println(String.join(", ",list));}}
}

《收件人列表》:生成相应的收件人列表相关推荐

  1. 在写新邮件时,在地址栏中敲入前几个字母,对于已熟悉的收件人,outlook会弹出列表...

    在写新邮件时,在地址栏中敲入前几个字母,对于已熟悉的收件人,outlook会弹出列表 这些outlook已经熟悉的收件人列表,储存在哪里? 详见下图 问题一已解决,相关内容存储在如下文件中 \Docu ...

  2. Python(迭代、三元表达式、列表生成、生成器、迭代器)

    迭代 什么是迭代1 重复2 下次重复一定是基于上一次的结果而来 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration). 在 ...

  3. java 有序列表_关于算法:在Java中为列表列表生成唯一的有序非重复组合

    我知道有很多类似的问题,并且已经阅读了几个小时.但是它们似乎都不符合我的要求. 我有列表列表(list >),列表可以是任何大小. 例: 我的外部列表大小是:4 清单内容 1. list(0) ...

  4. python列表生成字典_Python 列表生成式 字典生成式

    Python 列表生成式 & 字典生成式 通过生成式可以更加简洁地生成列表和字典 列表生成式 对比 直接生成数据后加入列表示例: user_list = list() for i in ran ...

  5. python生成元组_python 列表生成、元组、字典

    *列表生成 1语法: range(startistopstep)2.7版本 list(range(startistopstep))3.5 2.通过循环生成列表: [x for x in range(1 ...

  6. python列表生成多个号码_python遍历多个列表生成列表或字典

    原博文 2017-03-10 18:30 − key=['a','b','c','d'] value=[1,2,3,4] mydict=dict(zip(key,value)) print mydic ...

  7. C#生成不重复随机数列表

    C#生成不重复随机数列表 C#生成不重复(随机数 http://www.jbxue.com/tags/suijishu.html)列表实例的代码. 例子:    /// <summary> ...

  8. python 多个列表_python遍历多个列表生成列表或字典

    key=['a','b','c','d'] value=[1,2,3,4] mydict=dict(zip(key,value))print mydict 输出结果: {'a': 1, 'c': 3, ...

  9. kali CeWL密码攻击工具 Linux字典生成工具 自定义单词列表生成器

    目录 网络安全法普及 1 CeWL 介绍 2 安装 2.1 CentOS安装 3 使用 3.1 帮助 3.2 常用命令 网络安全法普及 中华人民共和国网络安全法 网络安全审查办法 中华人民共和国密码法 ...

最新文章

  1. 深度学习面试必备的 25 个问题
  2. AVAudioPlayer播放音频
  3. C++ Primer 5th笔记(chap 18 大型程序工具) 重载与命名空间
  4. 求知若渴,一份15选8的套餐给你
  5. .net core读取appsettings.json配置信息、自定义json文件、自定义xml文件
  6. Recovery dropped Procedure
  7. 俄罗斯独立自主的计算机技术和计算机网络
  8. WinRAR压缩加密的做法
  9. GifCam_CHS gif动画录制工具 下载
  10. Uclinux、Linux区别
  11. lch 儿童围棋课堂 初级篇1 ( (李昌镐 著))
  12. @synthesize 和 @dynamic 分别表示什么
  13. zookeeper集群,HA,单点故障
  14. 下载后端传来的excel文件
  15. win10管理员权限怎么获得_实用技巧:如何在win10中安装没有管理员权限的软件...
  16. Oracle的表空间和sqlplus
  17. 气“疯”了!| 经济学人全球早读精选
  18. 基于Flink打造实时计算平台为企业赋能
  19. matplotlib画图之设置横轴坐标上下限的两种方法
  20. kendoui 时间选择框

热门文章

  1. JSP开发环境(jdk配置、Tomcat配置、MySQL安装、eclipse安装),附安装包
  2. 哈佛大学单细胞课程|笔记汇总 (九)
  3. 学python兼职赚钱是真的吗,学python做兼职赚钱吗
  4. 南京一名女子从3楼坠下 被四五名消防员联手接住
  5. 前端开发需要学python吗_在选择学习Python开发还是前端开发时需要考虑哪些因素...
  6. python模块(二)—— 内置模块
  7. 北京四川商会举办“内强体质外塑形象”讲座庆祝三八妇女节
  8. The simplest way to get started with Stable Diffusion on Ubuntu
  9. 灵雀云DevOps平台C位出道背后的“神秘力量”
  10. C++ ofstream崩溃记录