首先,要求找到最长最短字符串,我们应该用数组将其存起来,输入的个数是不固定的,我们就可以用Scanner获取要输入的个数,最终找到的个数也不固定,我们可以封装两个方法,并且返回值类型为数组。

我遇到的问题,开始我想到的是字符串拼接,么想到返回值用数组存,导致每次返回的个数都是固定的,就算有多个。

代码如下:

  1. import java.util.Scanner;
  2.  
  3. //输入n行字符串,找出最长最短字符串(若有个数相同的,都打印出来)
  4. public class FindString {
  5.  
  6. public static void main(String[] args) {
  7. Scanner s = new Scanner(System.in);
  8. System.out.println("请输入n个字符串");
  9. int n = s.nextInt();
  10. String[] arr = new String[n];
  11. s.nextLine();
  12. System.out.println("请输入字符串");
  13. for (int i = 0; i < n; i++) {
  14. arr[i] = s.nextLine();
  15. }
  16.  
  17. String[] max = findMax(arr,arr[0]);
  18. System.out.println("最长的: ");
  19. for (int i = 0; i < max.length; i++) {
  20. if(max[i] != null){
  21. System.out.print(max[i]+" ");
  22. }
  23. }
  24. System.out.println();
  25.  
  26. String[] min = findMin(arr,arr[0]);
  27. System.out.println("最短的:");
  28. for (int i = 0; i < min.length; i++) {
  29. if(min[i] != null){
  30. System.out.print(min[i]+" ");
  31. }
  32. }
  33. }
  34.  
  35. /**
  36. * 找最短的
  37. * @param arr 输入的数组
  38. * @param s 数组的第一个元素
  39. * @return 返回的数组中放着最长的子串和null
  40. */
  41. private static String[] findMin(String[] arr, String s) {
  42. int min = s.length();
  43. String[] temp = new String[arr.length];
  44. for (int i = 1; i < arr.length ; i++) {
  45. if(arr[i].length() < min) {
  46. min = arr[i].length();
  47. s = arr[i];
  48. }
  49. }
  50. //走完说明找到了一个最长的,以这个长度为参考再遍历一遍数组,找到与其相同长度的
  51. for (int j = 0; j < arr.length ; j++) {
  52. if( arr[j].length() == s.length()){
  53. temp[j] = arr[j];
  54. }
  55. }
  56.  
  57. return temp;
  58.  
  59. }
  60.  
  61. private static String[] findMax(String[] arr, String s) {
  62. int max = s.length();
  63. String[] temp = new String[arr.length];
  64. for (int i = 1; i < arr.length ; i++) {
  65. if(arr[i].length() > max) {
  66. max = arr[i].length();
  67. s = arr[i];
  68. }
  69. }
  70. for (int j = 0; j < arr.length ; j++) {
  71. if( arr[j].length() == s.length()){
  72. temp[j] = arr[j];
  73. }
  74. }
  75.  
  76. return temp;
  77. }
  78. }

输入n个字符串,找出最长最短字符串(若有个数相同的,都打印出来)的更多相关文章

  1. C#中的字符串处理——找出最长数字子串

    百度测试部2015年10月份的面试题之——字符串处理,找出最长的子串. 代码如下: private static string SelectNumberFromString(string input) ...

  2. (1) 一个字符串,根据输入参数m,找出字符串的m个字符的所有字符串

    /** * 有一个字符串,根据输入参数m,找出字符串的m个字符的所有字符串 例如: String str ="abc", m=2 得到结果是 "ab" &quo ...

  3. 最长(大)回文串的查找(字符串中找出最长的回文串)PHP实现

    首先还是先解释一下什么是回文串:就是从左到右或者从右到左读,都是同样的字符串.比如:上海自来水来自海上,bob等等. 那么什么又是找出最长回文串呢? 例如:字符串abcdefedcfggggggfc, ...

  4. javascript实现:在N个字符串中找出最长的公子串

    'use strict' module.exports = function 找出最长公子串 (...strings) { let setsOfSubstrings = [] strings.redu ...

  5. FCC JS基础算法题(3):Find the Longest Word in a String (找出最长单词)

    题目描述: 在句子中找出最长的单词,并返回它的长度.函数的返回值应该是一个数字. 基本思路,将字符串转换成数组,然后得出数组中单个元素的长度,对长度进行排序,返回最大的一个 代码: function ...

  6. js比较两个String字符串找出不同,并将不同处高亮显示

    根据java代码改写成js,下边js文件代码: function StringBuffer() { this.__strings__ = []; }; StringBuffer.prototype.a ...

  7. hdu 1595 find the longest of the shortest【最短路枚举删边求删除每条边后的最短路,并从这些最短路中找出最长的那条】

    find the longest of the shortest Time Limit: 1000/5000 MS (Java/Others)    Memory Limit: 32768/32768 ...

  8. java从键盘输入学生成绩,找出最高分,并输出学生成绩等级。

    /*从键盘输入学生成绩,找出最高分,并输出学生成绩等级:成绩 >=最高分-10 等级为A成绩 >=最高分-20 等级为B成绩 >=最高分-30 等级为C其余为 等级为D 提示:先输入 ...

  9. pojg2744找一个最长的字符串x,使得对于已经给出的字符串中的任意一个y,x或者是y的子串,或者x中的字符反序之后得到的新字符串是y的子串。

    http://poj.grids.cn/practice/2744 描述现在有一些由英文字符组成的大小写敏感的字符串,你的任务是找到一个最长的字符串x,使得对于已经给出的字符串中的任意一个y,x或者是 ...

随机推荐

  1. 解决电脑性能一般,打开webstorm后,电脑比较卡的问题

    刚到一公司实习,要求使用webstrom开发前端,但安装后发现自己的电脑很卡,特别是在运行项目时,卡的不要不要的. 后来,发现一奇淫技巧,用sublime代替webstrom,但是没法启动项目啊 找到 ...

  2. 怎样打开.jar格式文件,怎样运行.jar格式文件

    当时第一次看到.jar文件不知道是什么鬼,以为是压缩包,直接就解压了,但是并没有什么用.所以在下为大家详细介绍如何打开.jar文件以及如何运行.jar文件.什么是.jar文件,简单的说就是java压缩 ...

  3. POJ 1961 Period 还是next数组的含义、

    题意:求所给串的前缀(包括原串)中有多少循环串(子串长度至少要是周期的两倍) 思路:还是next数组的应用问题.如果不懂next数组的话 http://www.cnblogs.com/sasuke-/ ...

  4. 2019-1-16-git-subtree-pull-错误-Working-tree-has-modifications

    title author date CreateTime categories git subtree pull 错误 Working tree has modifications lindexi 2 ...

  5. C++的价值

    In May 2010, the GCC steering committee decided to allow use of a C++ compiler to compile GCC. The c ...

  6. 设置html各元素不可点击(持续更新)

    1.span <span id="nextStep" onclick="right">下一页</span> $("#nextS ...

  7. Codeforces Beta Round #4 (Div. 2 Only) D. Mysterious Present(LIS)

    传送门 题意: 现在我们有 n 个信封,然后我们有一张卡片,并且我们知道这张卡片的长和宽. 现给出这 n 个信封的长和宽,我们想形成一个链,这条链的长度就是这条链中所含有的信封的数量: 但是需要满足① ...

  8. Git用在公司项目上的操作

    修改代码后再次提交 搭档优化好他自己的代码后,我想在vscode上看看他优化后的结果 此时直接git pull origin就可以看到了 j接下来的一些指令,慢慢了解... 分支本身已经在我上面 以下 ...

  9. Cortex-A9 Timing

    在Cortex-A9的文档<Cortex-A9 NEON Media Processing Engine>Technical Reference Manual中有关于Instruction ...

  10. SSL/TLS 配置

    Quick Start 下列说明将使用变量名 $CATALINA_BASE 来表示多数相对路径所基于的基本目录.如果没有为 Tomcat 多个实例设置 CATALINA_BASE 目录,则 $CATA ...