按字母顺序对字符串进行排序,而不使用java中的数组

时间:2013-11-14 01:41:11

标签: java

我需要做的是取一个随机字母的字符串并取字母并按字母顺序排列。例如,lidfj,将; dfijl。

我无法弄清楚我应该如何启动代码。我知道我可能需要使用compare,因为我不允许使用数组,但我不确定这是否是最好的方法。我也不确定如何开始。

提前致谢。

编辑:我认为我已经完成了一夜,因为我似乎无法想到其他任何事情。

public class PP426 {
    public static String alphabetize (String input) {
        String sorted = ";
        for (int i = 0; i < input.length(); i++) {
            char c = input.charAt(i);
            if () {
                sorted += character;
            }
        }

        return sorted;

    }
    public static void main(String[] args) {
        System.out.println(alphabetize("iunaselfksdf"));
    }
}

2 个答案:

答案 0 :(得分:5)

从您的问题和评论中,似乎它是一个家庭作业,你可以只使用String类进行排序(显然效率不高但是......好吧......无论如何都是功课)。

这里我假设您已经知道如何使用数组进行排序(例如冒泡排序)。如果没有,请搜索最简单的排序算法,如插入排序并学习它。

如果您知道如何使用数组进行排序,则可以简单地将逻辑转换为使用String的方法。

例如:

  • 访问位置yourString.charAt(i)
  • 的字符
  • 在位置设置字符:yourString = yourString.substring(0, i) + charToSet + yourString.substring(i+1)
  • 附加一个字符:yourString += charToSet

如果你甚至不知道排序,那么这里有一个只涉及String的方法:

我不打算给你实际代码。自己学习:

for currentChar in 'a' to 'z'
  loop through each char in inputString
    if you encounter any char = currentChar then 
       append that character to resultString
    end if 
  end loop
end for

resultString contains the result you need

答案 1 :(得分:2)

使用for循环和String.charAt()遍历字符串。使用StringBuilder(为了提高效率,连接字符串也可以,但是性能明智)来组合顺序中的字母。有了这些知识,现在实现你首选的排序算法(我想,这是排除算法的一部分,所以我不会在这里做;)