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

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

代码如下:

import java.util.Scanner;

//输入n行字符串,找出最长最短字符串(若有个数相同的,都打印出来)
public class FindString { public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入n个字符串");
int n = s.nextInt();
String[] arr = new String[n];
s.nextLine();
System.out.println("请输入字符串");
for (int i = 0; i < n; i++) {
arr[i] = s.nextLine();
} String[] max = findMax(arr,arr[0]);
System.out.println("最长的: ");
for (int i = 0; i < max.length; i++) {
if(max[i] != null){
System.out.print(max[i]+" ");
}
}
System.out.println(); String[] min = findMin(arr,arr[0]);
System.out.println("最短的:");
for (int i = 0; i < min.length; i++) {
if(min[i] != null){
System.out.print(min[i]+" ");
}
}
} /**
* 找最短的
* @param arr 输入的数组
* @param s 数组的第一个元素
* @return 返回的数组中放着最长的子串和null
*/
private static String[] findMin(String[] arr, String s) {
int min = s.length();
String[] temp = new String[arr.length];
for (int i = 1; i < arr.length ; i++) {
if(arr[i].length() < min) {
min = arr[i].length();
s = arr[i];
}
}
//走完说明找到了一个最长的,以这个长度为参考再遍历一遍数组,找到与其相同长度的
for (int j = 0; j < arr.length ; j++) {
if( arr[j].length() == s.length()){
temp[j] = arr[j];
}
} return temp; } private static String[] findMax(String[] arr, String s) {
int max = s.length();
String[] temp = new String[arr.length];
for (int i = 1; i < arr.length ; i++) {
if(arr[i].length() > max) {
max = arr[i].length();
s = arr[i];
}
}
for (int j = 0; j < arr.length ; j++) {
if( arr[j].length() == s.length()){
temp[j] = arr[j];
}
} return temp;
}
}

输入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. [转][ASP.NET Core 3框架揭秘] 跨平台开发体验: Windows [上篇]

    微软在千禧年推出 .NET战略,并在两年后推出第一个版本的.NET Framework和IDE(Visual Studio.NET 2002,后来改名为Visual Studio),如果你是一个资深的 ...

  2. Python--day70--ORM一对一表结构

    ORM一对一表结构:

  3. H3C 帧中继与水平分割(续)

  4. 指针版的PStash(用一个void指针数组, 来保存存入元素的地址) 附模板化实现 p321

    由容器PStash的使用者,负责清除容器中的所有指针.所以用户必须记住放到容器中的是什么类型,在取出时,把取出的void指针转换成对应的类型指针,然后 'delete 转换后的对象指针',才能在清除时 ...

  5. (二)C#编程基础复习——变量和常量

    今天要复习一下C#基础中的变量和常量,所谓变量,就是用来存储特定类型的数据,分为值类型和引类型,可以根据需要随时改变变量中所村存储的数据值,变量必须先声明,然后才能赋值:常量就是固定不变的值,常量的变 ...

  6. Vue 原生动画

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Java开发之快捷键

    1.显示桌面快捷键:win+D或者右击状态栏,选择显示桌面. 2.UE编辑器:如果想把多行记录合并为一行,使用替换(Ctrl+R),查找里输入^p(代表回车换行符),替换为里什么都不填,替换位置选择所 ...

  8. SpringSecurity登录原理(源码级讲解)

    一.简单叙述 首先会进入UsernamePasswordAuthenticationFilter并且设置权限为null和是否授权为false,然后进入ProviderManager查找支持Userna ...

  9. 2018-2-13-win10-uwp-隐藏实时可视化

    title author date CreateTime categories win10 uwp 隐藏实时可视化 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 ...

  10. linux seqlock 锁

    内核包含了一对新机制打算来提供快速地, 无锁地存取一个共享资源. seqlock 在这 种情况下工作, 要保护的资源小, 简单, 并且常常被存取, 并且很少写存取但是必须要快. 基本上, 它们通过允许 ...