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新手,代码需简单
展开
3个回答
展开全部
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");
}
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");
}
展开全部
你好,有很多关于Java字母,数字排序的案例,可以百度 Java字母排序看相关的博客。能够自我提升,不同的方式不同的效果。希望能够帮助你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/**
* 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'));// 显示插入之后的字符串数组
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询