第八章插入英文歌曲

import java.util.Arrays;
import java.util.Scanner;

/**
 * @Author:
 * @Date:2023/3/17 16:27
 */
public class DemoAZ {
    public static void main(String[] args) {
        /**
         *有一组英文歌曲,按照字母顺序从A到Z,保存在数组中
         * 现添加一首新歌,将他插入数组,并保持歌曲名称升序
         */
        /*比较字符串大小String1.compareToIgnoreCase(String2);
        此方法返回int值,按照字典顺序比价两个字符串的,并忽略大小写
        如果String1大于String1,该方法返回正整数,即1
        小于得负整数,即-1
        等于得0
         新歌插入得位置就是新歌曲数组元素中按照字典顺序第一个大于新歌得位置*/
        Scanner scanner = new Scanner(System.in);
        String[] songs = new String[]{"Island", "Ocean", "Pretty", "Sun"};
        //定义一个新的数组长度插入几个新增几个
        String[] newSongs = new String[5];
        //打印原数组
        System.out.println("插入前得数组为:");
        for (int i = 0; i < songs.length; i++) {
            System.out.print(songs[i] + "\t");
            newSongs[i]=songs[i];
        }
        int index = newSongs.length;//保存新增数据插入位置,默认为新数组长度
        System.out.println("\n请输入歌曲得名称:");
        String insertSong = scanner.next();
        for (int i = 0; i < newSongs.length; i++) {
            //如果旧的数据字符串长度大于新增的字符串长度,返回正整数,并记录插入位置
            if (newSongs[i].compareToIgnoreCase(insertSong) > 0) {
                index = i;
                break;
            }
        }
        //元素后移,数组下标从0开始,5-1=4最后一位数,循环条件,大于记录得下标
        for (int j = newSongs.length - 1; j > index; j--) {
            newSongs[j] = newSongs[j - 1];//下标后移
        }
        System.out.println("插入得下标:" + index);
        newSongs[index] = insertSong;//插入数据
        System.out.println("插入后得数组为:");
        //Aa  Bb  Cc  Dd  Ee  Ff  Gg  Hh  Ii  Jj  Kk  Ll  Mm  Nn  Oo  Pp  Qq  Rr  Ss  Tt  Uu  Vv  Ww  Xx  Yy  Zz
        for (int k = 0; k < newSongs.length; k++) {
            //升序
            Arrays.sort(newSongs);
            System.out.print(newSongs[k]+"\t");
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值