Java题目,怎么控制字符串长度和排序?

从键盘输入多个字符串,求出最长的字符串。每个字符串长度在100以内,且全为小写字母。
(2)把所有字符串按照字符串长度,从长到短,每个字符串占一行,存入string.txt文件中。

简单写了下,你看看

// 1.判断字符串长度小于100并且全为小写字母
// 可以将字符串转为char数组,再去判断Unicode编号是否在小写字母范围内
private static boolean f1(String s) {
if (s == null | "".equals(s) | s.length() > 100) {
return false;
}
char[] chs = s.toCharArray();
for (char c : chs) {
if (c < 97 || c > 122) {
return false;
}
}
return true;
}
// 2.写出到txt里,至于根据长度什么的太简单我就不写了
// 这里用流太麻烦,可以使用设置打印路径来搞定
private static void f2(String s) throws FileNotFoundException {
System.setOut(new PrintStream(new File("String.txt")));
System.out.println(s);
}
然后F5下项目视图,String.txt就出现了,或者自己改个路径
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-06-15
代码就没有了
问题:
你输入的字符串大于100打算怎么处理?
截断还是不要?追问

超过100长度的重新输出字符串

本回答被提问者和网友采纳
第2个回答  2019-06-19
获取字符串长度啊 然后循环比较排序 另外嵌套两个判断使达到你要的要求
第二问那就使用字节输出流就行
代码就不打了 用手机打太麻烦
有什么问题可以继续追问追问

我是萌新,你能写出第一问的核心代码吗,如果没什么问题直接采纳啦,谢谢

追答

急吗 我还正上课呢 晚上回来写可以吗

import java.util.ArrayList;
import java.util.Scanner;
public class DemoStringScannner {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
ArrayList list = new ArrayList();
for (int i = 0; i 122) { //判断这些字符是否在小写字母范围内,不符合条件的从集合中删除
if (j == list.get(i).length() - 1) {
list.remove(i);
}
}
}
}
else{
list.remove(i);
}
}
String longest = list.get(0);
for (int k = 1; k longest.length()) {
longest = list.get(k);
}
}
System.out.println("符合条件的且最长的字符串为:" + longest);
}
}
/*另外可扩展一下,当两个或多个长度相等的时候的这种情况,有点懒,不是很想打QAQ,循环判断嵌套有点多,毕竟我也只是18级新生 多多体谅*/

追问

好的,谢谢,待会去运行试试看

追答

相似回答