早教吧 育儿知识 作业答案 考试题库 百科 知识分享

Java关于文本处理的问题就是在argument输入一系列单词按单词长度降序排列之后取每个单词的同一个位置的字母组成一个新的单词在输出出来例子是这样子的:"Everyonestartsasawhitebelt"会

题目详情
Java关于文本处理的问题
就是在argument 输入一系列单词 按单词长度降序排列之后 取每个单词的同一个位置的字母组成一个新的单词在输出出来 例子是这样子的:
"Everyone starts as a white belt" 会先排序为 (Everyone,starts,white,belt,as,a).
然后取每个单词同一个位置的字母在组成一个新的单词
第一个字母组成的单词就是:Eswbaa
vthes
eail
rrtt
yte
os
n
e
最后输出就是 "Eswbaa vthes eail rrtt yte os n e" 、
现在小弟有两个问题 第一个是怎么用降序排列 我用的是Array.sort为升序排列的 第二个是取每个单词同一个位置的字母再组成新的单词这一点不大懂 能给个完整的code有加分
▼优质解答
答案和解析
package test;

import java.util.Arrays;
import java.util.Comparator;

public class A1
{
public static String done ( String str )
{
String[] strs = str.split ("\\s+");
Arrays.sort (strs, new Comparator ()
{
@Override
public int compare ( String o1, String o2 )
{
if (o1.length () > o2.length ())
{
return -1;
}
else if (o1.length () < o2.length ())
{
return 1;
}
else
{
return 0;
}
}
});
String all = "";
int max = strs[0].length ();
for ( int j = 0; j < max; j++ )
{
String result = "";
for ( int i = 0; i < strs.length; i++ )
{
if (strs[i].length () <= j)
{
break;
}
result += strs[i].charAt (j);
}
if (j != max - 1)
{
result += " ";
}
all += result;
}
return all;
}

public static void main ( String[] args )
{
String str = "Everyone starts as a white belt";
System.out.println (done (str));
}
}