确定。菜鸟问题。
我有一个扫描的字符串,我想使用Collections.sort(字符串)排序。
该字符串来自一个扫描文件,其中包含一堆" asdfasdfasdf"在它。
我扫描了文件(.txt),scanmethod返回一个名为scanningBok的字符串;
然后将该字符串添加到名为skapaArrayBok();
的ArrayList中这是代码:
public ArrayList<String> skapaArrayBok() {
ArrayList<String> strengar = new ArrayList<String>();
strengar.add(scanner());
Collections.sort(strengar);
return (strengar);
}
在我不起眼的新秀大脑中,输出将是&#34; aaadddfffsss&#34;但没有。
这是一个学习,项目的目的是找到一本书中最常用的10个单词。但我无法对其进行排序。但我只是想知道为什么它不会对扫描的字符串进行排序?
答案 0 :(得分:3)
您正在排序列表,而不是字符串。该列表只有一个元素,因此对它进行排序不会改变任何内容。
为了对String的内容进行排序,将其转换为字符数组,并对数组进行排序。
答案 1 :(得分:1)
Collections.sort()对列表中的项目进行排序。
您的列表中只有一个项目:字符串&#34; aaadddfffsss&#34;。没有什么可以排序的。
SUGGESTIONS:
1)在您的收藏中阅读更多字符串
public ArrayList<String> skapaArrayBok() {
ArrayList<String> strengar = new ArrayList<String>();
// Input three strings
strengar.add(scanner());
strengar.add(scanner());
strengar.add(scanner());
// Now sort
Collections.sort(strengar);
......或......
2)将字符串拆分为字符,然后对字符进行排序。
public ArrayList<String> skapaArrayBok() {
// Get string
String s = scanner());
char[] charArray = s.toCharArray();
Arrays.sort(charArray );
// Return sorted string
return (new String(charArray);
答案 2 :(得分:0)
排序&#34; strengar&#34;,ArrayList是正确的。但是,如果您只添加了一个String,它将不会更改ArrayList的顺序。已经对包含一个元素的列表进行了排序。如果要对ArrayList进行排序,则应使用需要添加的每个String调用ArrayList上的add(),然后排序。
答案 3 :(得分:0)
你想要对String中完全不同的字符进行排序,你需要重新组织字符,一个可能的解决方案(特别是知道字符串是不可变的)是以下Sort a single String in Java