字符串数组排序问题
原创
©著作权归作者所有:来自51CTO博客作者mb5f5b1df7f1e34的原创作品,请联系作者获取转载授权,否则将追究法律责任
5:字符串数组排序问题
总时间限制:
1000ms
内存限制:
65536kB
描述
给定一组字符串,按指定的排序方式输出这些字符串。排序可是自然顺序(inc)、自然逆序(dec)、忽略大小写顺序(ncinc)、忽略大小写逆序(ncdec)等。
输入
输入有多行,第一行为一个表明排序方式的字符串见题面,第二行为字符串的数目。
其余各行每行一个字符串,字符串中间可能空格,前后也可能有空格,但前后的空格要忽略。
输出
输出也有多行,按指定的顺序输出输入的字符串。
样例输入
ncdec
3
Hello World!
You're right!
haha! you're wrong!
样例输出
You're right!
Hello World!
haha! you're wrong!
来源
JP06
这个题太气人了,编译器啊
import java.io.IOException;
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.Scanner;
public class Main {
static Scanner in = new Scanner(System.in);
static int MAXN=10000+100;
static void dfs(long p,int n)
{
return ;
}
public static void main(String args[])throws IOException {
// int n=in.nextInt();
// int m=in.nextInt();
// int[] a=new int[n+1];
//
// for(int i=1;i<=n;i++)
// {
// a[i]=in.nextInt();
// }
String s;
s = in.nextLine();
char[] c = s.toCharArray();
int len=s.length();
LinkedList<String> l=new LinkedList<String>();
int n=in.nextInt();
in.nextLine();
for(int i=1;i<=n;i++)
{
String a=in.nextLine();
//System.out.print(a);
l.add(a);
}
if(s.equals("inc"))
{
Collections.sort(l);
for(String t:l)
{
System.out.println(t);
}
}
else if(s.equals("dec"))
{
Collections.sort(l);
Collections.reverse(l);
for(String t:l)
{
System.out.println(t);
}
}
else if(s.equals("ncinc"))
{
Collections.sort(l, new Comparator<String>(){
public int compare(String str1, String str2)
{
str1=str1.toUpperCase();
str2=str2.toUpperCase();
return str1.compareTo(str2);
}
}
);
for(String t:l)
{
System.out.println(t);
}
}
else if(s.equals("ncdec"))
{
Collections.sort(l, new Comparator<String>(){
public int compare(String str1, String str2)
{
str1=str1.toUpperCase();
str2=str2.toUpperCase();
return str1.compareTo(str2);
}
}
);
Collections.reverse(l);
for(String t:l)
{
System.out.println(t);
}
}
}
}