Java现在有一组无序字符序列: a、c、u、b、e、p、f、z.按字母顺序进行升序排列。 5

现在有一组无序字符序列:a、c、u、b、e、p、f、z.按字母顺序进行升序排列,现在要往此字符序列中插入一个新的字符,要求插入之后字符序列仍保持有序。本人是Java新手,... 现在有一组无序字符序列: a、c、u、b、e、p、f、z.按字母顺序进行升序排列,现在要往此字符序列中插入一个新的字符,要求插入之后字符序列仍保持有序。本人是Java新手,代码需简单 展开
 我来答
窦宾aM
2018-12-08
知道答主
回答量:2
采纳率:0%
帮助的人:1318
展开全部
String[] nums= {"a","c","u","b","e","p","f","z"};
Scanner input = new Scanner(System.in);
System.out.print("原字符序列:");
String num="";
for(int i=0;i<nums.length;i++) {
num=nums[i];
System.out.print(num+"\t");
}
Arrays.sort(nums);
System.out.print("\n升序排序后:");
for(String sum:nums) {
System.out.print(sum+"\t");
}
/*System.out.print("\n逆序输出为:");
for(int i=nums.length-1;i>=0;i--) {
num=nums[i];
System.out.print(num+"\t");
}*/
System.out.print("\n请输入新插入的字符:");
String zifu=input.next();

int index=nums.length-1;//插入的数据下标
for(int i=0;i<nums.length;i++) {
//字符串比较大小,相当于zifu-nums[i]<0;
if(zifu.compareTo(nums[i])<0) {
index=i;
break;
}
}
System.out.print("插入字符的下标是:"+index);
System.out.print("\n插入后的字符序列是:");

//扩充数组
String[] newnums = new String[nums.length+1];
//数组拷贝
System.arraycopy(nums, 0, newnums, 0, nums.length);
nums = newnums;

for(int j=nums.length-1;j>index;j--) {
nums[j]=nums[j-1];
}

nums[index]=zifu;
for(String aum:nums) {
System.out.print(aum+"\t");
}
zsyqn
2015-05-12 · TA获得超过2048个赞
知道小有建树答主
回答量:842
采纳率:100%
帮助的人:376万
展开全部
你好,有很多关于Java字母,数字排序的案例,可以百度 Java字母排序看相关的博客。能够自我提升,不同的方式不同的效果。希望能够帮助你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
暮影1994
2015-05-12 · TA获得超过2338个赞
知道大有可为答主
回答量:1215
采纳率:60%
帮助的人:391万
展开全部

/**
 * 2015年5月12日下午12:24:39
 * 
 * @author season TODO 获取百度知道财富
 *
 */
public class CharacterMethod {

    /**
     * bubble2Up TODO 使用冒泡排序对字符串数组升序排序
     * 
     * @param yourArr
     *            目标字符串数组
     */
    public void bubble2Up(char[] yourArr) {

        for (int index = 0; yourArr != null && index < yourArr.length; index++) {
            for (int j = 0; j < yourArr.length - index - 1; j++) {
                if (yourArr[j] > yourArr[j + 1]) {
                    char temp = yourArr[j];
                    yourArr[j] = yourArr[j + 1];
                    yourArr[j + 1] = temp;
                }
            }
        }
    }

    /**
     * insertInto TODO 在相应的位置插入一个字符,插入之后,顺序不变
     * 
     * @param yourArr
     *            目标数组
     * @param tagChar
     *            插入目标字符
     * @return char[] 返回新的字符串数组
     */
    public char[] insertInto(char[] yourArr, char tagChar) {
        char[] temp = new char[yourArr.length + 1];
        int flag = 0, index;
        for (index = 0; index < yourArr.length; index++) {
            if (tagChar >= yourArr[index]) {
                temp[index] = yourArr[index];
            } else if (flag == 0) {
                temp[index] = tagChar;
                flag = 1;
            } else {
                temp[index] = yourArr[index - 1];
            }
        }

        temp[index] = yourArr[index - 1];

        return temp;
    }

    /**
     * display TODO 遍历字符串数组里面的所有元素
     * 
     * @param charArr
     *            需要显示的字符串数组
     */
    public void display(char[] charArr) {
        System.out.println();// 换行输出
        for (int index = 0; index < charArr.length; index++)
            System.out.print("  " + charArr[index]);
    }

    public static void main(String[] args) {

        CharacterMethod cmd = new CharacterMethod();// 声明对象

        char[] yourArr = { 'a', 'c', 'u', 'b', 'e', 'p', 'f', 'z' };// 赋初值
        cmd.display(yourArr);// 排序之前显示原始字符数组

        cmd.bubble2Up(yourArr);// 冒泡排序
        cmd.display(yourArr);// 显示排序之后的数组

        cmd.display(cmd.insertInto(yourArr, 'k'));// 显示插入之后的字符串数组
    }

}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式