Khóa học free Bài 25: So sánh chuỗi trong Java

Thảo luận trong 'Java cơ bản' bắt đầu bởi Tiasangmoi92, 21/7/13.

  1. Tiasangmoi92

    Tiasangmoi92 Super Moderator

    Lượt xem: 18,300
    /* Bài viết thuộc loạt bài hướng dẫn trong "Khóa Học Lập Trình Java Miễn Phí"
    trên diễn đàn Android.Vn, bạn có thể vào đây đọc

    để hiểu hơn về khóa học và tham gia ngay cùng mọi người;) */

    java-so sanh string
    Bài 24, chúng ta đã làm quen với các phương thức xử lý chuỗi. Nó rất quan trọng, và ngoài ra nó sẽ thường kết hợp với cá phương thức so sánh nữa để đạt được yêu cầu cần làm trong 1 chương trình cụ thể! Đặc biệt là những bài tìm kiếm, sắp xếp!

    Dưới đây, mình chỉ giới thiệu một vài phương thức cơ bản để so sánh 2 chuỗi hay dùng nhất, các bạn cần tự tìm hiểu thêm nếu như cần! (Ctrl + space)
    Code sẽ kèm theo chú thích cụ thể từng phương thức, nếu bạn có gì thắc mắc, hay khó hiểu, bạn có thể bình luận phía dưới!

    PHP:
    package javaandroidvn;
     
    public class 
    JavaAndroidVn {
     
        public static 
    void main(String[] args) {
            
    String str1 "Android.Vn Android.Vn";
            
    String str2 "android.vn android.vn";
     
            
    System.out.println("So sánh phân biệt chữ hoa chữ thường: "+str1.equals(str2));
            
    System.out.println("So sánh không phân biệt hoa thường: "+str1.equalsIgnoreCase(str2));
     
            
    // So sánh thứ tự a, b, c ....
            
    String str3 "abc";
            
    String str4 "bcde";
            
    System.out.println("So sánh 2 chuỗi thường!");
            
    System.out.println(""+str3.compareTo(str4));  //str3 < str4 , so sánh trả về -1
            
    System.out.println(""+str4.compareTo(str3)); // str4 > str3, so sánh trả về 1
            
    System.out.println(""+str3.compareTo(str3)); // str3 = str3, so sánh trả về 0
     
            
    System.out.println("So sánh 2 chuỗi hoa và thường");
            
    String str5 "ANDroid.Vn";
            
    String str6 "android.vn";
            
    System.out.println(""+str5.compareToIgnoreCase(str6)); // KHông phân biệt hoa và thường
            
    System.out.println(""+str5.compareTo(str6));          // Phân biệt chữ hoa và chữ thường!
     
            
    System.out.println("Chuỗi này có là tập con của chuỗi kia không?");
            
    String str7 "android.vn";
            
    String str8 "vn";
            
    //Quá trình so sánh có phân biệt chữ hoa và chữ thường!
            
    System.out.println("Chuỗi vn nằm ở vị trí thứ "+str7.indexOf(str8)+" của chuỗi android.vn");
     
            
    //Khi so sánh không tìm thấy thì sẽ trả về -1
            
    str8 "TN";
            
    System.out.println("Chuỗi TN nằm ở vị trí thứ "+str7.indexOf(str8)+" của chuỗi android.vn");
     
            
    System.out.println("Chuỗi này có bắt đầu hay kết thúc bằng chuỗi kia không?");
            
    str7 "android.vn";
            
    String str9 "and";
            
    String str10 "roid.vn";
            
    System.out.println("str7.startsWith(str9) = "+str7.startsWith(str9));
            
    System.out.println("str7.endsWith(str10) = "+str7.endsWith(str10));
     
     
        }
    }
    [​IMG]

    Bài tập về nhà::D
    Tạo 1 mảng các chuỗi là danh sách tên học sinh. Nhập vào 1 chuỗi nào đó.
    Sắp xếp danh sách tên theo thứ tự bảng chữ cái a, b, c.....
    Tìm kiếm tất cả các tên học sinh giống tuyệt đối hoặc gần giống với từ khóa tìm kiếm đều được hiện ra.
    Ví dụ nhập từ khóa tìm kiếm: "hoang" thì sẽ hiện ra tất cả các tên sau (nếu như chúng có trong danh sách):
    Hoang Thi Yen, Nguyen Hoang Hiep, Vu Van Hoang, hoang, Hoang, hoang van tien, ...
    (kết quả tìm kiếm không phân biệt chữ hoa và chữ thường!)

    (Chú ý: Các bạn nên tự giác làm bài tập, hoàn thiện rồi đăng lên, các bài bạn đã làm, nên để code trong thẻ code - chọn thẻ PHP cho rõ ràng và để ẩn code trong thẻ ẩn spoiler, để khi click vào mới hiện code lên , trước khi thử sức tự làm, bạn không nên nhìn code của các bạn khác đã đăng nhé;))

    [​IMG]

    My Facebook: https://www.facebook.com/tiasangmoi

    Bài viết đăng lên diễn đàn khác vui lòng ghi rõ nguồn: Android.Vn
    string, so sánh chuỗi, so sánh string, sắp xếp chuỗi, sắp xếp string, tìm kiếm string, thuật toán tìm kiếm chuỗi, sắp xếp mảng các chuỗi, khóa học java, khóa học lập trình java
  2. Vjrus.HT

    Vjrus.HT Member

    Show Spoiler

    PHP:
    package DemoJava.Android.Vn;
     
    import java.util.Scanner;
     
    public class 
    Unit25 {
     
        private 
    String name[];
        private 
    int num;
        private 
    String temp;
     
        
    void Input() {
            
    Scanner inp = new Scanner(System.in);
            try {
                
    System.out.print("Numbers: ");
                
    num inp.nextInt();
            } catch (
    Exception e) {
                
    System.out.println("Error: " e.toString());
            }
            
    inp.nextLine();
            
    name = new String[num];
            for (
    int i 0numi++) {
                
    System.out.print("Student " + (1) + " name: ");
                
    name[i] = inp.nextLine();
            }
        }
     
        
    void Sort() {
            for (
    int i 0num 1i++)
                for (
    int j = (1); numj++)
                    if (
    name[i].compareTo(name[j]) > 0) {
                        
    temp name[i];
                        
    name[i] = name[j];
                        
    name[j] = temp;
                    }         
        }
     
        
    void Show() {
            
    System.out.println("Student List");
            for (
    int i 0numi++) {
                
    System.out.println("      " name[i]);
            }
        }
     
        
    void Search(String find) {
            
    find find.toLowerCase();
            
    boolean check false;
            for (
    int i 0numi++) {
                
    temp name[i].toLowerCase();
                if (
    temp.indexOf(find) != -1) {
                    
    System.out.println(name[i]);
                    
    check true;
                }
            }
            if (!
    check)
                
    System.out.println("Keyword not found.");       
        }
     
        public static 
    void main(String[] args) {
            
    Unit25 unit25 = new Unit25();
            
    unit25.Input();
            
    unit25.Sort();
            
    unit25.Show();
            
    Scanner inp = new Scanner(System.in);
            
    System.out.print("Key word find: ");
            
    unit25.Search(inp.nextLine());
     
        }
    }
    Tentacle, 13T2_DTle, tuanleedragon4 others thích bài này.
  3. R700

    R700 Member

    Thêm một kí tự enter giữa spoiler và thẻ code mới post bài được @@ Mới hay
    Show Spoiler


    PHP:
    import java.util.Arrays;
    import java.util.Scanner;
     
    public class 
    Main {
        static 
    String[] arrayString = {
            
    "Nguyen Khac Phuc",
            
    "Truong Thi Hong Diep",
            
    "Vo Minh Quan",
            
    "Chung Thanh Tam",
            
    "Ba Thi Chau Pha",
            
    "Au Van Tan",
            
    "Nguyen Khac Truc",
            
    "Truong Thi Hong Tam",
            
    "Vo Minh Bao",
            
    "Chung Thanh Kha",
            
    "Ba Thi Chau Phuong",
            
    "Au Van Bay"
        
    };
     
        public static 
    void main(String[] args) {
               
            
    System.out.println("Before sorting String array:");
            
    printArrayString();
       
            
    System.out.println("\nAfter sorting String array:");
            
    Arrays.sort(arrayString);
            
    printArrayString();
       
            
    findName();
        }
        static 
    void findName(){
            
    String findString inputName();   
            for(
    String namearrayString){
                if(
    name.toLowerCase().indexOf(findString.toLowerCase()) != -1){
                  
    System.out.println(name);
                }
            }
        }
        static 
    String inputName(){
            
    Scanner sc = new Scanner(System.in);
            
    System.out.print("Name: ");   
            return 
    sc.nextLine();
        }
        static 
    void printArrayString(){
            for (
    int i 0arrayString.lengthi++) {
                
    System.out.println(arrayString[i]);
            }
        }
    }
    Tiasangmoi92 thích bài này.
  4. dienlh93

    dienlh93 New Member

    bài này t thấy ko ổn
    Tiasangmoi92 thích bài này.
  5. R700

    R700 Member

    chú thấy không ổn chỗ nào, cứ nói anh em nghe :D
  6. dienlh93

    dienlh93 New Member

    thứ nhất là yêu cầu đề bài là sắp xếp tên theo a b c...chứ ko phải sắp xếp theo họ bạn nhé. trước hết là so sánh last name rồi tới first name!
  7. NoBiHust

    NoBiHust New Member

    Mã:
    /*
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    */
    package ThangHust;
    import java.util.*;
    /**
    *
    * @author Thang
    */
    class Student{
        private String name[];
        private int number;
        void inPut(){
          Scanner in=new Scanner(System.in);
          try{
            System.out.println("Number : ");
            number=in.nextInt();
          }catch(Exception e){
            System.out.println("Error : "+e.toString());
          }
          in.nextLine();
          name= new String[number];
          for(int i = 0; i <number; i++){
                System.out.println("Student:  " + (i + 1) + " name: ");
                name[i] = in.nextLine();
            }
         
        }
        public static String daoTen(String str) /*** VI DU VU TIEN THANH ->>> THANH  VU  TIEN ***/
            {                                                                /*  TEN->  HO->  DEM */
                String[] temp=str.split(" ");
                str ="";
                str=temp[temp.length-1]+" ";
                for (int i=0;i<temp.length-1;i++)
                {
                    str=str + temp[i]+" ";
                }
                return str;
            }
        void sort(){
            String tenSvDao[]=new String[20];
            for(int i=0; i<number;i++)
                {
                    tenSvDao[i]=daoTen(name[i]);
                }
                for(int i=0;i<number-1;i++)
                {
                    for(int t=i+1;t<number;t++)
                    {
                        if(tenSvDao[i].compareTo(tenSvDao[t]) >0) 
                        {
                            String temp;
                            temp=name[i];
                            name[i]=name[t];
                            name[t]=temp;
                        }
                    }
                }
          }
        void display(){
            System.out.println("Danh sach hoc sinh sauu khi sap xep : ");
            for(int i=0;i<number;i++)
                System.out.println(""+(i+1)+" "+name[i]);
        }
          void Search(String find) {
            find = find.toLowerCase();
            boolean check = false;
            for (int i = 0; i < number; i++) {
              String temp = name[i].toLowerCase();
                if (temp.indexOf(find) != -1) {
                    System.out.println(name[i]);
                    check = true;
                }
            }
            if (!check)
                System.out.println("Keyword not found.");     
        }
    }
    public class Unit_25{   
        public static void main(String[] args){
          Student st = new Student();
          st.inPut();
          st.sort();
          st.display();
          System.out.println("Key word find : ");
          Scanner in=new Scanner(System.in);
          st.Search(in.nextLine());
         
        }
    }
  8. haizax

    haizax New Member

    Bài này khó quá x.x
    không biết sắp xếp kiểu gì, mình toàn sắp họ trước :|
  9. Tiasangmoi92

    Tiasangmoi92 Super Moderator

    Bạn có thể tham khảo bài các bạn ở trên :)
  10. haizax

    haizax New Member

    có bài bạn Nobihust có phần đảo tên nhưng mình không hiểu cho lắm :(
  11. Show Spoiler

    Mã:
    public class BTBai25B{
        public static void main(String[]args){
            String []arr={"Nguyen Van H","Nguyen Tai A","Nguyen Thi H","Le Van Nguyen","Le Nguyen A"};
            String tk="A";
            int n=arr.length;
            int i,j;
            int dem=0;
            // in ds sv da dao ten
            System.out.println("DS SV da dao ten:");
            for(i=0;i<n;i++)
            {
                System.out.println(daoTen(arr[i]));
            }
            //sap xep
            String []dao=new String[20];
            String tmp;
           
            for(i=0; i<n;i++)
            {
                dao[i]=daoTen(arr[i]);
            }
           
           
            for(i=0;i<n-1;i++)
            {
                for(j=i+1;j<n;j++)
                {
                    if(dao[i].compareToIgnoreCase(dao[j])>0)
                    {
                        tmp=dao[i];
                        dao[i]=dao[j];
                        dao[j]=tmp;
                    }
                }
            }
    //        in ds hs dao nguoc
            System.out.println("Ds Ten HS duoc sap xep :");
            for(i=0;i<n;i++)
            {
                System.out.println(dao[i]);
            }
           
            // in ds chinh thuc
            String []b=new String[20];
            System.out.println("DS CHINH THUC: ");
           
            for(i=0;i<n;i++)
            {
                b[i]=daoTen(daoTen(dao[i]));
                System.out.println(daoTen(daoTen(dao[i])));
            }
            // tim kiem hs ten A
            System.out.println("Tim kiem hs co ten : "+tk);
            for(i=0;i<n;i++)
            {
                if(b[i].indexOf(tk) != -1)
                {
                    System.out.println(b[i]);
                    dem++;
                }
            }
            System.out.println("co "+dem+" hs co ten "+tk);
        }
        public static String daoTen(String str)
        {                                     
            String[] temp=str.split(" ");
            str ="";
            str=temp[temp.length-1]+" ";
            for (int i=0;i<temp.length-1;i++)
            {
                str=str + temp[i]+" ";
            }
        //  System.out.println(str);
            return str;
        }
       
    }
    
  12. NoBiHust:
    1/ phần sắp xếp ds hs có chỗ chưa đúng.
    vd với ds (Nguyen Van A; Nguyen Tai A;Nguyen Thi H;Le Van Nguyen; Le Nguyen A)
    sẽ ko thỏa mãn tên 2 ban A sắp xếp gần nhau.
    2/ phần đảo ngược tên bạn làm rất hay.
  13. 1 cách sắp xếp Tên > mọi người góp ý giúp mình xem nhé
    Show Spoiler

    Mã:
    public class BTBai25C {
        public static void main(String[]args){
            String s0=new String("Nnguyen Tai An");
            String s1=new String("Nnguyen Van bcand");
            String s2=new String("Nnguyen Khac An");
            String s3=new String("Nguyen Thi llllll");
            String s4=new String("Nguyen Thi hong hhhh");
            String s5=new String("Nguyen Thi hong Hhhh");
            String s6=new String("Nguyen Van A");
            String[]a={s0,s1,s4,s2,s3,s5,s6};
            sapxep(a);
        }
        public static String Ten(String s)
        {
            String []a=s.trim().split(" ");
            String s1=a[a.length-1];
    //        System.out.println("Ten : "+a[a.length-1]);
            return s1;
           
        }
        public static void sapxep(String []a)
        {
            int i,j;
            String tmp;
            for(i=0;i<a.length;i++)
            {
                for(j=i+1;j<a.length;j++)
                {
                    if(Ten(a[i]).compareToIgnoreCase(Ten(a[j]))>0)
                    {
                        tmp=a[i];
                        a[i]=a[j];
                        a[j]=tmp;
                    }
                }
            }
            for(i=0;i<a.length;i++)
            {
                System.out.println(a[i]);
            }
        }
    }
    

    thanks
  14. haizax

    haizax New Member

    Show Spoiler

    PHP:
    //Tạo 1 mảng các chuỗi là danh sách tên học sinh. Nhập vào 1 chuỗi nào đó.
    //Sắp xếp danh sách tên theo thứ tự bảng chữ cái a, b, c.....
    //Tìm kiếm tất cả các tên học sinh giống tuyệt đối hoặc gần giống với từ khóa tìm kiếm đều được hiện ra.
    //Ví dụ nhập từ khóa tìm kiếm: "hoang" thì sẽ hiện ra tất cả các tên sau (nếu như chúng có trong danh sách):
    //Hoang Thi Yen, Nguyen Hoang Hiep, Vu Van Hoang, hoang, Hoang, hoang van tien, ...
    //(kết quả tìm kiếm không phân biệt chữ hoa và chữ thường!)
    package bai25;
    import java.util.Scanner;
     
    public class 
    Bai25 {
    private 
    String name[],dao,tg,t,str1;
    private 
    int n;
     
    public 
    void nhap(){
        
    Scanner in = new Scanner(System.in);
        
    System.out.println("Số sinh viên cần nhập: ");
        
    this.in.nextInt();
        
    in.nextLine();
        
    name = new String[n];
        for (
    int i 0ini++){
            
    System.out.println("Tên Sinh Viên thứ "+(i+1)+" là: ");
            
    this.name[i] = in.nextLine();
        }
    }
     
    public 
    String Ten(String str){
        for (
    int i 0ni++) {
          
    String [] name str.split(" ");
          
    str1 name[name.length-1];
        }
        return 
    str1;
    }
     
    public 
    void Sort(){
        for (
    int i 0ni++) {
            for (
    int j i+1nj++) {
                if(
    Ten(name[i]).compareToIgnoreCase(Ten(name[j]))>0){
                    
    tg name[i];
                    
    name[i]=name[j];
                    
    name[j]=tg;
                }
            }
        }
        for (
    int i 0name.lengthi++) {
            
    System.out.println("Tên Sinh Viên thứ "+(i+1)+" là: "+name[i]);
        }
    }
    public 
    void Search(){
        
    Scanner in1 = new Scanner(System.in);
        
    System.out.println("Từ khóa Tên Sinh Viên cần tìm: ");
        
    in1.nextLine();
        for (
    int i 0ni++) {
            
    tg name[i].toLowerCase();
            if(
    name[i].indexOf(t) != -1){
                
    System.out.println("Có Những sinh viên: "+name[i]);
            }
            }
        }
     
     
        public static 
    void main(String[] args) {
            
    Bai25 a = new Bai25();
            
    a.nhap();
            
    a.Sort();
            
    a.Search();
        }
    }
  15. bqthanh94_cntt

    bqthanh94_cntt alone 94

    PHP:
    import java.util.Scanner;
    class 
    sinhvien{
        private 
    String name;
        
    int n;
        
    sinhvien[]s;
        public 
    sinhvien(){}
        public 
    sinhvien(int n)
        {
            
    this.n=n;
            
    s=new sinhvien[n];
        }
        public 
    void nhap()
        {
            
    Scanner sc=new Scanner(System.in);
            for(
    int i=0;i<s.length;i++)
            {
                
    s[i]=new sinhvien();
                
    System.out.println("nhap thong tin cho sinh vien thu "+(i+1));
                
    s[i].name=sc.nextLine();
            }
        }
        public 
    void chuanhoa()
        {
            for(
    int i=0;i<s.length;i++)
            {
                
    s[i].name=s[i].name.trim();
                do{
                    
    s[i].name s[i].name.replace("  "" ");
                }while(
    s[i].name.indexOf("  ")!=-1);
            }
        }
        public 
    String get_name(sinhvien s)
        {
                
    String arrName[]=s.name.split(" ");
                return 
    arrName[arrName.length-1];
        }
        public 
    void Sort()
        {
            
    String yz;
            
    sinhvien x;
            for(
    int i=1;i<s.length-1;i++)
            {
                for(
    int j=s.length-1;j>=i;j--)
                {
                    
    y=s[j-1].get_name(s[j-1]);
                    
    z=s[j].get_name(s[j]);
                    if(
    y.compareTo(z)>0)
                    {
                        
    x=s[j-1];
                        
    s[j-1]=s[j];
                        
    s[j]=x;
                    }
                }
            }
        }
        public 
    void xuat()
        {
            for(
    int i=0;i<s.length;i++)
            {
                
    System.out.println(s[i].name);
            }
        }
        public 
    String[] tukhoa(String x)
        {
            
    String[]arrName=x.split(" ");
            return 
    arrName;
        }
        public 
    void find(String x)
        {
            
    String[]arrName;
            for(
    int i=0;i<s.length;i++)
            {
                
    arrName=s[i].tukhoa(s[i].name);
                for(
    int j=0;j<arrName.length;j++)
                {
                    if(
    arrName[j].compareToIgnoreCase(x)==0)
                    {
                        
    System.out.println(s[i].name);
                        break;
                    }
                }
            }
        }
    }
    public class 
    onString {
        public static 
    void main(String[] args) {
            
    Scanner s=new Scanner(System.in);
            
    int n=0;
            try{
                
    System.out.println("nhap so luong sinh vien: ");
                
    n=s.nextInt();
            }catch(
    Exception e)
            {
                
    System.out.println("Errror "+e);
                
    System.exit(0);
            }
            
    sinhvien sv=new sinhvien(n);
            
    sv.nhap();
            
    sv.chuanhoa();
            
    sv.Sort();
            
    sv.xuat();
            
    System.out.print("nhap tu khoa can tim: ");
            
    s=new Scanner(System.in);
            
    String x=s.nextLine();
            
    sv.find(x);
        }
    }
    Tiasangmoi92 thích bài này.
  16. hanhnv87

    hanhnv87 New Member

    Đây là bài của mình, mình ko biết cách sắp xếp theo tên, mình đọc các bạn làm mình cũng ko hiểu lắm nên chỉ làm đc thế này thôi: :D
    Show Spoiler

    PHP:
    package com.hanhnv.bai25;
     
    import java.util.Scanner;
     
    public class 
    Bai25 {
        private 
    int number;
        private 
    String[] staff;
     
        public static 
    void main(String[] args) {
            
    Bai25 bai25 = new Bai25();
            
    bai25.inputData();
            
    bai25.sortData();
            
    bai25.showData();
            
    bai25.searchData();
        }
     
        public 
    void inputData() {
            
    Scanner s = new Scanner(System.in);
            
    System.out.println("Enter number of staff in your department:");
            
    number s.nextInt();
            
    staff = new String[number];
            
    System.out.println("Enter staff names in your department:");
            
    s.nextLine();
            for (
    int i 0staff.lengthi++) {
                
    System.out.println("Enter staff number " + (1));
                
    staff[i] = s.nextLine();
            }
        }
     
        public 
    void showData() {
            
    System.out.println("The list you had entered:");
            for (
    int i 0staff.lengthi++) {
                
    System.out.println(staff[i]);
            }
        }
     
        public 
    void sortData() {
            for (
    int i 0staff.length 1i++) {
                for (
    int j 1staff.lengthj++) {
                    if (
    staff[i].compareToIgnoreCase(staff[j]) > 0) {
                        
    String temp staff[i];
                        
    staff[i] = staff[j];
                        
    staff[j] = temp;
                    }
                }
            }
        }
     
        public 
    void searchData() {
            
    System.out.println("Enter name you want to search:");
            
    Scanner s = new Scanner(System.in);
            
    String findName s.nextLine();
            
    System.out.println("And here name you want to search:");
            for (
    int i 0staff.lengthi++) {
                if (
    staff[i].toLowerCase().indexOf(findName.toLowerCase()) != -1) {
                    
    System.out.println(staff[i]);
                }
            }
     
        }
    }
  17. phamtuan6996

    phamtuan6996 New Member

    Có 1 chuỗi "123456789" lam sao để sắp xếp ngược lại, và in ra kết quả đó được ạ. cảm ơn các pro nhiều.
  18. Tiasangmoi92

    Tiasangmoi92 Super Moderator

    Đây bạn ơi:
    PHP:
    StringBuffer a = new StringBuffer("123456789");
    System.out.println(a.reverse());
    phamtuan6996 thích bài này.
  19. fxx

    fxx New Member

    thế này chắc chuẩn rồi :d
    PHP:
    package samsung.neo.basic;
     
    import java.util.Scanner;
     
    public class 
    Demo {
     
        public static 
    void main(String[] args) {
            
    String[] studentList = { "Hoang Thi Yen""Nguyen Hoang Hiep",
                    
    "Vu Van Hoang"" hoang""Hoang""hoang van tien",
                    
    "Phan Tu Quoc Thang""Nguyen Van A""Nguyen Tai A ",
                    
    "Nguyen Thi H""Le Van Nguyen"" Le Nguyen A" };
            
    Scanner input = new Scanner(System.in);
            
    System.out.print("Nhap chuoi: ");
            
    String name input.nextLine();
     
            
    // Searching by string
            
    int count 0;
            for (
    int i 0studentList.lengthi++) {
                if (
    studentList[i].toLowerCase().indexOf(name.toLowerCase()) != -1) {
                    
    System.out.println(studentList[i]);
                    
    count++;
                }
            }
            if (
    count == 0) {
                try {
                    throw new 
    MyException();
                } catch (
    MyException e) {
                    
    System.out.println(e);
                }
            } else {
                
    System.out.println("Tim thay " count " sinh vien co chuoi "
                        
    name);
            }
     
            
    // Sorting by order
            
    System.out.println("");
            
    System.out.println("Before sorting");
            for (
    int i 0studentList.lengthi++) {
                
    studentList[i] = studentList[i].trim();
                
    System.out.println(studentList[i]);
            }
            
    System.out.println("");
     
            
    boolean swap;
            
    int index1index2;
            
    String temp1temp2temp;
            for (
    int i studentList.length 10i--) {
                
    swap false;
                for (
    int j 1<= ij++) {
     
                    
    index1 studentList[1].lastIndexOf(32);
                    if (
    index1 == -1) {
                        
    temp1 studentList[1];
                    } else {
                        
    temp1 studentList[1].substring(index1 1)
                                + 
    studentList[1].substring(0index1);
                    }
     
                    
    index2 studentList[j].lastIndexOf(32);
                    if (
    index2 == -1) {
                        
    temp2 studentList[j];
                    } else {
                        
    temp2 studentList[j].substring(index2 1)
                                + 
    studentList[j].substring(0index2);
                    }
     
                    if (
    temp1.compareToIgnoreCase(temp2) > 0) {
                        
    temp studentList[1];
                        
    studentList[1] = studentList[j];
                        
    studentList[j] = temp;
                        
    swap true;
                    }
                }
                if (!
    swap) {
                    break;
                }
            }
            
    System.out.println("After sorting");
            for (
    int i 0studentList.lengthi++) {
                
    System.out.println(studentList[i]);
            }
        }
    }
     
    class 
    MyException extends Exception {
        public 
    String toString() {
            return 
    "Khong tim thay sinh vien nao theo yeu cau!";
        }
    }
    phamtuan6996 thích bài này.
  20. thanhpl

    thanhpl New Member

    Show Spoiler

    PHP:
    public static void main(String[] args){
        
    String [] arrSinhVien = {"Nguyen Van Hoang""Chau Nguyen Hoang""Hoang Nhu Lan""hoang thuong Nguyen","hoang","Hoang""Vo Hoang Hiep","Tiep Hoang Hoa","hoang hoang tham"};
        
    String hoTen;
        
    Scanner input = new Scanner(System.in);
        
    System.out.print("Nhap ho ten sinh vien muon tim kiem: ");
        
    hoTen input.nextLine();
        
    arrSinhVien sapThuTu(arrSinhVien);
        for (
    int i 0arrSinhVien.lengthi++) {
            
    System.out.println(arrSinhVien[i]);
        }
        
    System.out.println("Danh sach sinh vien co ten giong voi: " hoTen);
        
    timSV(arrSinhVienhoTen);   
     

    public static 
    void timSV(String [] arrSVString hoten){
        for (
    int i 0arrSV.lengthi++) {
            if ( (
    arrSV[i].toLowerCase()).indexOf(hoten.toLowerCase()) >= 0)
                
    System.out.println(arrSV[i]);
        }
    }
    public static 
    String ten(String hoTen){
        
    hoTen hoTen.trim();
        
    int pos hoTen.length() -1;
        while ( 
    pos >=&& !(hoTen.substring(pospos +1).equals(" "))) {
            
    pos--;
        }
        return 
    hoTen.substring(pos+1);
    }
    public static 
    String [] sapThuTu(String[] arrSV){
        
    String tmp;
        for (
    int i 0arrSV.length-2i++) {
            for (
    int j arrSV.length-1>= i+1j--) {
                if ( 
    ten(arrSV[j]).compareToIgnoreCase(ten(arrSV[j-1])) < 0) {
                    
    tmp arrSV[j];
                    
    arrSV[j] = arrSV[j-1];
                    
    arrSV[j-1] = tmp;
                }           
            }
        }
        return 
    arrSV;
    }

Chia sẻ trang này