import java.util.Scanner;
public class Freaking {
public static void main(String[] argd){
String [] musics = new String []{"Island","Ocean","Pretty","Sun"};
String [] newMusics = new String [musics.length+1];
String music = "";
int loc = 0;
System.out.println("输入前的歌曲:");
for (int i = 0; i < musics.length; i++) {
System.out.println(musics[i]);
}
for (int i = 0; i < musics.length; i++) {
newMusics[i] = musics[i];
}
System.out.println("请输入歌曲的名称:");
Scanner input = new Scanner(System.in);
music = input.nextLine();
for (int i = 0; i < musics.length; i++) {
if (musics[i].compareToIgnoreCase(music)>0) {
loc = i;
break;
}
}
for (int i = newMusics.length-1; i >loc; i--) {
newMusics[i] = newMusics[i-1];
}
newMusics[loc] = music;
System.out.println("输入后的数组为:");
for (int i = 0; i < newMusics.length; i++) {
System.out.println(newMusics[i]);
}
}
}
这是代码
for (int i = newMusics.length-1; i >loc; i--) {
newMusics[i] = newMusics[i-1];
}
newMusics[loc] = music;这里FOR的条件我不明白,老师讲的是排队,是从最后一个开始向右换,所以是newMuscis.length-1,可是我不明白,请高手讲讲!
java歌曲排序
答案:4 悬赏:80 手机版
解决时间 2021-02-01 23:58
- 提问者网友:沉默菋噵
- 2021-02-01 02:14
最佳答案
- 五星知识达人网友:拜訪者
- 2021-02-01 03:25
拿这里的数组进行举例吧。
musics原数组是String[] musics = new String[] { "Island", "Ocean", "Pretty", "Sun" };
即musics[0]="Island" musics[1]="Ocean" musics[2]="Pretty" musics[3]="Sun"(数组长度为4,而下标是从0开始的,所以数组中最后一个元素可以表示为musics[musics.length-1])
这里的newMusics是从数组的最后一个元素也就是newMusics[newMusics.length-1]开始循环,把元素从后往前放入newMusics数组中。以为之前定义了int loc=0;
所以最后一个元素的赋值语句为newMusics[loc]=music(即newMusics[0]=music,music=input.nextLine())。
不知道我解释的,你听没听明白。
如果还有问题请追问或是百度hi我。
希望我的解答对你有所帮助。
musics原数组是String[] musics = new String[] { "Island", "Ocean", "Pretty", "Sun" };
即musics[0]="Island" musics[1]="Ocean" musics[2]="Pretty" musics[3]="Sun"(数组长度为4,而下标是从0开始的,所以数组中最后一个元素可以表示为musics[musics.length-1])
这里的newMusics是从数组的最后一个元素也就是newMusics[newMusics.length-1]开始循环,把元素从后往前放入newMusics数组中。以为之前定义了int loc=0;
所以最后一个元素的赋值语句为newMusics[loc]=music(即newMusics[0]=music,music=input.nextLine())。
不知道我解释的,你听没听明白。
如果还有问题请追问或是百度hi我。
希望我的解答对你有所帮助。
全部回答
- 1楼网友:忘川信使
- 2021-02-01 05:15
呃。。对于这种for循环你要是不理解的话,可以自己动手写下流程帮助理解啊。。你可以带3个数进去,自己实现下。。有些东西别人讲给你听的不如自己动手,自己理解。。
- 2楼网友:想偏头吻你
- 2021-02-01 04:42
简单一点就是这样:数组向前平移一位,然后将music放到循环结束的第一位。举个例子来说就是:数组{1,2,3,4}中加入一个数字5就变成了{2,3,4,5},这样讲给明白了?不明白可以继续问
- 3楼网友:夜余生
- 2021-02-01 03:30
A B C D E NULL (最后一个位置为空)
如果你想从第三个字母C往后移,你会怎么做,你老师的思路:
A B C→ D→E→NULL
把最后一个=最后第二个
最后第二个=最后第三个
...
直到指定的位置
变成了:
A B C C D E
最后再把第三个c换成你输入的字符
newMusics[loc] = music;
就是你想要的了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯