CodeGym
AI Academy
促销
CodeGym University
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题
问题
  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 所有问题
CodeGym/Java 任务帮助/Can I write it this way, please?
PeaceLovePang
等级 2
Warrington
  • 2020/5/31
  • 1336查看次数
  • 6评论

Can I write it this way, please?

关于任务的问题 最短或最长
Java Syntax,  等级 7,  课时 6
讨论中


1.创建字符串列表。
2.从键盘添加 10 个字符串。
3.找出列表中较早出现的字符串:最短的或最长的。
如果有多个字符串为最短或最长的字符串,则考虑遇到的第一个此类字符串。
4.显示第 3 步中描述的字符串。应显示一个字符串。

要求:
  • 声明字符串列表变量并立即初始化该变量。
  • 程序应从键盘读取 10 个字符串并将其添加到列表中。
  • 如果最短字符串在最长字符串之前出现,则程序应显示最短字符串。
  • 如果最长字符串在最短字符串之前出现,则程序应显示最长字符串。
....
package zh.codegym.task.task07.task0712; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; /* 最短或最长 */ public class Solution { public static void main(String[] args) throws Exception { //在此编写你的代码 ArrayList<String> list = new ArrayList<String>(); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); int i=0; while(i<10) { String A = reader.readLine(); list.add(A); i++; } int max=list.get(0).length(); for(int j=0;j<list.size();j++) { int K=list.get(j).length(); if(max>=K) { max=K; System.out.println(list.get(j)); break; } if(max<=K) { max=K; System.out.println(list.get(j)); break; } } // System.out.println(max); } }
0
评论 (6)
  • 热门
  • 最新
  • 最旧
您必须 登录 才能发表评论
不愿意透露专业的计算机学生
等级 11
12 九月 2020, 02:59
package zh.codegym.task.task07.task0712; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; /* 最短或最长 */ public class Solution { public static void main(String[] args) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); ArrayList<String> str = new ArrayList<>(); String min = ""; String max = ""; for(int i = 0;i < 10; i++){ str.add(reader.readLine()); if(i == 0){ min = str.get(0); max = str.get(0); } if(str.get(i).length() < min.length()) min = str.get(i); if(str.get(i).length() > max.length()) max = str.get(i); } System.out.println(str.get(Math.min(str.indexOf(min), str.indexOf(max)))); } }
0
江江是小白
等级 8 , Shaoguan, China
18 八月 2020, 19:59
// 我的思路 //第一步先循环写入 //第二步循环找出最长 和 最短 //第三步找到最长和最短分别在第几次找到的 //第四部判断谁先然后提示 //我也是小白 希望对你们有帮助啦哈哈哈 public class Solution { public static void main(String[] args) throws Exception { //在此编写你的代码 int zc = 0; int zd = 100; int zccs = 0; int zdcs = 0; boolean zdkq = true; boolean zckq = true; ArrayList<String> list = new ArrayList<String>(); BufferedReader read = new BufferedReader(new InputStreamReader(System.in)); for (int i = 0 ;i < 10;i++){ list.add(read.readLine()); } for (int o = 0;o < 10;o++){ int leng = list.get(o).length(); if (zc < leng){ zc = leng; // System.out.println(zc); } if (zd > leng){ zd = leng; //System.out.println(zd); } } for(int p = 0;p < 10;p++){ if(zdkq == true){ if(list.get(p).length() == zd){ zdcs = p; //System.out.println("最短在"+zdcs); zdkq = false; } } if(zckq == true){ if(list.get(p).length() == zc){ zccs = p; //System.out.println("最长在"+zccs); zckq = false; } } } System.out.println(zdcs<zccs?list.get(zdcs):list.get(zccs)); } }
+1
hidden #10646198
等级 16
30 七月 2020, 07:32
package zh.codegym.task.task07.task0712;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Scanner;

/*
最短或最长
1.创建字符串列表。
2.从键盘添加 10 个字符串。
3.找出列表中较早出现的字符串:最短的或最长的。
如果有多个字符串为最短或最长的字符串,则考虑遇到的第一个此类字符串。
4.显示第 3 步中描述的字符串。应显示一个字符串。

要求:
•	声明字符串列表变量并立即初始化该变量。
•	程序应从键盘读取 10 个字符串并将其添加到列表中。
•	如果最短字符串在最长字符串之前出现,则程序应显示最短字符串。
•	如果最长字符串在最短字符串之前出现,则程序应显示最长字符串。
*/

public class Solution {
    public static void main(String[] args) throws Exception {
        /*
 在此编写你的代码
        为什么要用MAX_VALUE和MIN_VALUE
        要取一个最小值就把他声明成最大值 这样 任意一个数都会比他小 程序的可靠性就会提高
        */
        int minIndex = Integer.MAX_VALUE; //最小坐标
        int longIndex = Integer.MIN_VALUE;//最大坐标
        int StrMinLength = minIndex;
        int strLongLength = longIndex;
        ArrayList<String> list = new ArrayList<>();
      Scanner scan = new Scanner(System.in);
        for (int i = 0; i < 10; i++) {
            list.add(scan.next());
        }

        for (int i = 0; i < list.size()-1; i++) {
            //获取最长字符串下标
            if (list.get(i).length()>strLongLength){
                //记录坐标
                longIndex = i;
                //记录最长长度
                strLongLength = list.get(i).length();
            }
            //获取最短字符串下标
            if (list.get(i).length()<StrMinLength) {
//                记录坐标
                minIndex = i;
                //记录最短长度
                StrMinLength = list.get(i).length();
            }
        }
        //判断谁的下标先出现就输出谁
        if (minIndex < longIndex) System.out.println(list.get(minIndex));
        else System.out.println(list.get(longIndex));
    }
}
0
AE86
等级 20 , Jinan
15 七月 2020, 13:39
思路: 1.循环读取 2.循环排序获取最短长度 3.循环排序获取最长长度 4.循环列表 判读结果 等于最长或者最短长度的字符串 打印输出!重点 berak;立马结束。 //在此编写你的代码 ArrayList<String> list = new ArrayList<String>(); for(int i=0;i<10;i++){ Scanner sc =new Scanner(System.in); String s =sc.nextLine(); list.add(s); } int s =list.get(0).length();//最短长度 for(int j=1;j<10;j++){ if(list.get(j).length()<s){ s =list.get(j).length(); } } //System.out.println(s); int d =list.get(0).length();//最长长度 for(int w=1;w<10;w++){ if(list.get(w).length()>d){ d =list.get(w).length(); } } //System.out.println(d); for(String n : list){ if(n.length()==s|n.length()==d){ System.out.println(n); break; } }
0
hidden #10646198
等级 16
30 七月 2020, 06:25
10个Scanner对象 除非有需要 不要把new写进循环里
0
AdventurerJohn
等级 18 , Chengdu, China
9 六月 2020, 01:39
You just compare the size of the two adjacent, not the largest and smallest 你这个只是比较了相邻两个的大小,并不是比较的最大跟最小
0
Learn
  • 注册
  • Java 课程
  • 任务帮助
  • 定价
  • Java 语法
社区
  • 用户
  • 文章
  • 论坛
  • 聊天
  • 成功故事
  • 动态
  • 联盟计划
Company
  • 关于我们
  • 联系方式
  • 评价
  • 媒体中心
  • CodeGym for EDU
  • 常见问题
  • 支持
CodeGymCodeGym 是一个从零开始学习 Java 编程的在线课程。该课程是初学者掌握 Java 的完美方式。它包含 1200+ 个带即时验证的任务,以及必要的 Java 基础理论。为了帮助你在学习中取得成功,我们实现了一系列激励功能:测验、编码项目、关于高效学习的内容,以及 Java 开发者职业相关内容。
关注我们
界面语言
English Deutsch Español हिन्दी Français Português Polski বাংলা
简体中文
मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
“程序员是培养出来的,不是天生的” © 2026 CodeGym
MastercardVisa
“程序员是培养出来的,不是天生的” © 2026 CodeGym