维护有序的图书列表_compateToIgnoreCase()方法

来源:互联网 发布:mysql数据库重启 编辑:程序博客网 时间:2024/05/12 16:11
题目要求:
图书馆购买了一批图书, 为了方便管理,将图书按照书名从'A'到'Z'的顺序排列。现有一本新书,请插入到合适的位置,仍保持顺序排列,请编程解决。
所需知识:
字符串的compareToIgnoreCase()方法。
语法格式:String1.compateToIgnoreCase(String2);
方法功能:这个方法是按字典顺序比较两个字符串的,并且忽略了大小写,如果按照字典顺序String1大于String2,该方法返回一个正数。String1小于String2,该方法返回一个负数。若两个字符串相等则返回0。

程序代码:

import java.util.Scanner;


public class CS{

public static void main(String[] args){

String[] books = new String[]{"Computer", "Hibernate", "Java", "Struts"};

String[] newBooks = new String[books.length+1];//新书数组

String bookName; //保存添加的新书名

int index = books.length; //保存在新数组中的下标,注意一定要初始化

System.out.println("原书数组为:");

for(int i=0; i<books.length; i++){

System.out.print(books[i]+"  ");//输出插入前的数组

}

//将数组books的元素复制到newBooks数组中

for(int i=0; i<books.length; i++){

newBooks[i] = books[i];

}

//找到插入新书的位置

System.out.print("\n请输入书名:");

Scanner in = new Scanner(System.in);

bookName = in.nextLine();//如使用in.next(),将只记录连续的字符,空格及其后面的字符忽略;

for(int i=0; i<books.length; i++){

if(bookName.compareToIgnoreCase(books[i]) < 0){ //第一个大于新书名的元素即为插入位置

index = i;//插入的位置是数组下标为i的元素

break;

}

}

//元素后移

for(int i=newBooks.length-1; i>index; i--){

//如用i++实现,将会出现元素[1]赋给元素[2],元素[2]的值变为元素[1],不能再元素[2]的原值赋给元素[3]

newBooks[i] = newBooks[i-1];//下标为index的元素往后移1位

}

//插入新书

newBooks[index] = bookName;//将新书名插入到该位置

System.out.println("插入后的新书数组为:");

for(int i=0; i<newBooks.length; i++){

System.out.print(newBooks[i]+"  ");

}

}

}

/*----------------------

原书数组为:

Computer  Hibernate  Java  Struts

请输入书名:HelloWorld

插入后的新书数组为:

Computer  HelloWorld  Hibernate  Java  Struts

----------------------*/


0 0
原创粉丝点击