输入n个字符串,找出最长最短字符串(若有个数相同的,都打印出来)
首先,要求找到最长最短字符串,我们应该用数组将其存起来,输入的个数是不固定的,我们就可以用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个字符串,找出最长最短字符串(若有个数相同的,都打印出来)的更多相关文章
- C#中的字符串处理——找出最长数字子串
百度测试部2015年10月份的面试题之——字符串处理,找出最长的子串. 代码如下: private static string SelectNumberFromString(string input) ...
- (1) 一个字符串,根据输入参数m,找出字符串的m个字符的所有字符串
/** * 有一个字符串,根据输入参数m,找出字符串的m个字符的所有字符串 例如: String str ="abc", m=2 得到结果是 "ab" &quo ...
- 最长(大)回文串的查找(字符串中找出最长的回文串)PHP实现
首先还是先解释一下什么是回文串:就是从左到右或者从右到左读,都是同样的字符串.比如:上海自来水来自海上,bob等等. 那么什么又是找出最长回文串呢? 例如:字符串abcdefedcfggggggfc, ...
- javascript实现:在N个字符串中找出最长的公子串
'use strict' module.exports = function 找出最长公子串 (...strings) { let setsOfSubstrings = [] strings.redu ...
- FCC JS基础算法题(3):Find the Longest Word in a String (找出最长单词)
题目描述: 在句子中找出最长的单词,并返回它的长度.函数的返回值应该是一个数字. 基本思路,将字符串转换成数组,然后得出数组中单个元素的长度,对长度进行排序,返回最大的一个 代码: function ...
- js比较两个String字符串找出不同,并将不同处高亮显示
根据java代码改写成js,下边js文件代码: function StringBuffer() { this.__strings__ = []; }; StringBuffer.prototype.a ...
- 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 ...
- java从键盘输入学生成绩,找出最高分,并输出学生成绩等级。
/*从键盘输入学生成绩,找出最高分,并输出学生成绩等级:成绩 >=最高分-10 等级为A成绩 >=最高分-20 等级为B成绩 >=最高分-30 等级为C其余为 等级为D 提示:先输入 ...
- pojg2744找一个最长的字符串x,使得对于已经给出的字符串中的任意一个y,x或者是y的子串,或者x中的字符反序之后得到的新字符串是y的子串。
http://poj.grids.cn/practice/2744 描述现在有一些由英文字符组成的大小写敏感的字符串,你的任务是找到一个最长的字符串x,使得对于已经给出的字符串中的任意一个y,x或者是 ...
随机推荐
- [转][ASP.NET Core 3框架揭秘] 跨平台开发体验: Windows [上篇]
微软在千禧年推出 .NET战略,并在两年后推出第一个版本的.NET Framework和IDE(Visual Studio.NET 2002,后来改名为Visual Studio),如果你是一个资深的 ...
- Python--day70--ORM一对一表结构
ORM一对一表结构:
- H3C 帧中继与水平分割(续)
- 指针版的PStash(用一个void指针数组, 来保存存入元素的地址) 附模板化实现 p321
由容器PStash的使用者,负责清除容器中的所有指针.所以用户必须记住放到容器中的是什么类型,在取出时,把取出的void指针转换成对应的类型指针,然后 'delete 转换后的对象指针',才能在清除时 ...
- (二)C#编程基础复习——变量和常量
今天要复习一下C#基础中的变量和常量,所谓变量,就是用来存储特定类型的数据,分为值类型和引类型,可以根据需要随时改变变量中所村存储的数据值,变量必须先声明,然后才能赋值:常量就是固定不变的值,常量的变 ...
- Vue 原生动画
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Java开发之快捷键
1.显示桌面快捷键:win+D或者右击状态栏,选择显示桌面. 2.UE编辑器:如果想把多行记录合并为一行,使用替换(Ctrl+R),查找里输入^p(代表回车换行符),替换为里什么都不填,替换位置选择所 ...
- SpringSecurity登录原理(源码级讲解)
一.简单叙述 首先会进入UsernamePasswordAuthenticationFilter并且设置权限为null和是否授权为false,然后进入ProviderManager查找支持Userna ...
- 2018-2-13-win10-uwp-隐藏实时可视化
title author date CreateTime categories win10 uwp 隐藏实时可视化 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 ...
- linux seqlock 锁
内核包含了一对新机制打算来提供快速地, 无锁地存取一个共享资源. seqlock 在这 种情况下工作, 要保护的资源小, 简单, 并且常常被存取, 并且很少写存取但是必须要快. 基本上, 它们通过允许 ...