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

在java中,按字母顺序对字符串进行排序,不使用数组,java,Java,我需要做的是取一个包含随机字母的字符串,然后将这些字母按字母顺序排列。例如,lidfj将是;dfijl 我不知道该如何启动代码。我知道我可能需要使用compare to,因为我不允许使用数组,但我不确定这是否是最好的方法。我也不知道该怎么开始 提前谢谢 编辑:我想我今晚已经结束了,因为我似乎想不出别的了 public class PP426 { public static String alphabetize (String input) { String sorted

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

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

提前谢谢

编辑:我想我今晚已经结束了,因为我似乎想不出别的了

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"));
    }
}
公共类PP426{
公共静态字符串字母顺序(字符串输入){
字符串排序=”;
对于(int i=0;i
使用
进行循环并遍历字符串。使用a(为了提高效率,串接字符串也可以工作,但在性能上是明智的)按顺序组合字母。有了这些知识,现在实现首选的排序算法(我想这是练习的一部分,所以我在这里不做;))

使用
进行循环并遍历字符串。使用a(为了提高效率,串接字符串也可以工作,但在性能上是明智的)按顺序组合字母。有了这些知识,现在实现首选的排序算法(我想这是练习的一部分,所以我在这里不做;))

从您的问题和评论来看,这似乎是一个家庭作业,您只能使用字符串类进行排序(显然效率不高,但……嗯……无论如何,这是一个家庭作业)

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

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

例如:

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

如果您甚至不了解排序,这里有一种只涉及字符串的方法:

我不会给你实际的代码。你自己学习:

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

从你们的问题和评论来看,这似乎是一个家庭作业,对于这个作业,你们只允许使用字符串类进行排序(显然效率不高,但……嗯……无论如何,这是一个家庭作业)

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

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

例如:

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

如果您甚至不了解排序,这里有一种只涉及字符串的方法:

我不会给你实际的代码。你自己学习:

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


我会尝试使用字符串变量,然后仔细研究字符串类函数-SOoooo…等等。只要阅读Masud的答案,现在我不确定:这是关于排序字符串(即,哪个字符串先出现)的吗,还是关于在字符串中插入字母?@JohannesH.-对字符串中的字母进行排序strings@Adel:我也是这么想的。那么我的答案至少是合适的。^^你和你的导师谈过如何做,以及他们希望你从中得到什么吗?我会用字符串变量进行实验,然后仔细观察字符串类函数-SOoooo…等等。只要读一下Masud的答案,现在我不确定:这是关于排序字符串的(也就是说,哪个字符串首先出现),还是关于在字符串中插入字母?@JohannesH.-对字符串中的字母进行排序strings@Adel:我也是这么想的。那么我的答案至少是合适的。^^你有没有和你的导师谈过如何做到这一点,以及他们希望你从中得到什么?我们还没有学习字符串生成器,所以我不确定该怎么做使用StringBuilder。然后忽略该部分(使用普通字符串)问问你的老师。或者在你得到排序后回来,我会告诉你如何使用
StringBuilder
@itsaferbie-Stringbuillder是一种奖励。Stringbuillder可以工作。我可以粘贴一些我当前键入的代码,看看我是否在正确的轨道上吗?当然,我想,继续吧!我们还没有学习关于字符串生成器,所以我不确定如何使用StringBuilder。然后忽略该部分(改用普通字符串)问问你的老师。或者在你得到排序后回来,我会告诉你如何使用
StringBuilder
@itsaferbie-Stringbuillder是一种奖励。Stringbuillder可以工作。我可以粘贴一些我当前键入的代码,看看我是否在正确的轨道上吗?当然,我想,继续吧!嗯,这甚至是我的错“找到最小的剩余元素并在结果的末尾插入它”我不知道排序,我们也还没有学习数组。不过我们应该很快就会学习数组。@JohannesH。我知道我的方法有点棘手(因为我假设字符串只包含'a'-'z'))当前位置在我看来OP是真实的