首先,要求找到最长最短字符串,我们应该用数组将其存起来,输入的个数是不固定的,我们就可以用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. H3C NAT的信息显示和调试

  2. Python--day40--threading模块的几个方法

    import time import threading #threading.get_ident() 查看当前进程号 def wahaha(n): time.sleep(0.5) print(n,t ...

  3. H3C 路由计算

  4. 【u238】暴力摩托

    Time Limit: 1 second Memory Limit: 64 MB [问题描述] 晚会上大家在玩一款"暴力摩托"的游戏,它拥有非常逼真的画面和音响效果! 当然了,车子 ...

  5. DIRECTORY_SEPARATOR 与 getcwd

    DIRECTORY_SEPARATOR:目录分隔符,linux上就是’/’    windows上是’\’ ,php的内置常量是一个显示系统分隔符的命令,php的内部常量,不需要任何定义与包含即可直接 ...

  6. 21个项目玩转深度学习:基于TensorFlow的实践详解06—人脸检测和识别——项目集锦

    摘自:https://github.com/azuredsky/mtcnn-2 mtcnn - Multi-task CNN library language dependencies comment ...

  7. Linux 内核类设备

    一个类的真正目的是作为一个是该类成员的设备的容器. 一个成员由 struct class_device 来表示: struct class_device { struct kobject kobj; ...

  8. Linux 内核设备属性

    sysfs 中的设备入口可有属性. 相关的结构是: struct device_attribute { struct attribute attr; ssize_t (*show)(struct de ...

  9. Linux 内核bin+attribute 结构二进制属性

    sysfs 惯例调用所有属性来包含一个单个的人可读文本格式的值. 就是说, 只是偶然地很 少需要来创建能够处理大量二进制数据的属性. 这个需要真正地只出现在必须传递数据, 不可动地, 在用户空间和设备 ...

  10. Linux 内核 回顾: ISA

    设计上 ISA 总线非常老了, 并且是非常地低能, 但是它仍然持有一块挺大的控制设备的 市场. 如果速度不重要并且你想支持老式主板, 一个 ISA 实现要优于 PCI. 这个老标准 的另外一个好处是如 ...