Loading Now

Bài tập về xử lý xâu trong Java: chuyển các ký tự in thường sang in hoa

Bài tập về xử lý xâu trong Java: chuyển các ký tự in thường sang in hoa

Bài tập

Cho hai xâu ký tự s1s2 được nhập vào từ bàn phím, bạn hãy viết chương trình hiển thị ra vị trí đầu tiên mà s2 xuất hiện trong s1 (không phân biệt hoa thường).

Ví dụ

  • Nếu bạn nhập s1 = "Codelearn", s2 = "LEARN" thì màn hình sẽ hiển thị ra 4.
    Giải thích: xâu "LEARN" xuất hiện tại vị trí thứ 4 trong xâu "Codelearn" (không phân biệt hoa thường nên "LEARN" hay "learn" đều được coi là như nhau).
  • Nếu bạn nhập s1 = "blackcat", s2 = "lack" thì màn hình sẽ hiển thị ra 1.

Lý thuyết

Lớp String (bạn cũng có thể hiểu là kiểu dữ liệu String) đã cung cấp sẵn khá nhiều phương thức cho việc xử lý xâu, sau đây là một số phương thức hay được sử dụng:

1. Phương thức length

Như bạn đã được học ở bài trước, đây là phương thức trả về độ dài của một String. Ví dụ:

import java.util.Scanner;

public class Array {
	public static void main(String[] args) {
		String s = "Code";
		System.out.print(s.length());
	}
}

Kết quả khi chạy chương trình:

4

2. Phương thức charAt

Đây là phương thức trả về một ký tự trong String. Ví dụ:

import java.util.Scanner;

public class Array {
	public static void main(String[] args) {
		String s = "Code";
		System.out.print(s.charAt(2));
	}
}

Kết quả:

d

3. Phương thức replace

Phương thức này dùng để thay thế các chuỗi/ký tự được tìm thấy thành chuỗi/ký tự khác. Ví dụ:

import java.util.Scanner;

public class Array {
	public static void main(String[] args) {
		System.out.println("Cod3l3arn".replace('3', 'e'));
		System.out.println("Blackcat".replace("Black", "White"));
	}
}

Kết quả khi chạy chương trình:

Codelearn
Whitecat

4. Phương thức toUpperCase/toLowerCase

Đây là hai phương thức dùng để chuyển các ký tự của một xâu từ in thường về in hoa và ngược lại. Ví dụ:

import java.util.Scanner;

public class Array {
	public static void main(String[] args) {
		String s = "CoDeLeArN";
		System.out.println(s.toUpperCase());
		System.out.println(s.toLowerCase());
	}
}

Kết quả khi chạy chương trình:

CODELEARN
codelearn

5. Phương thức indexOf

Phương thức này trả về vị trí xuất hiện đầu tiên của một String trong String khác, nếu không tìm thấy thì trả về -1. Ví dụ:

import java.util.Scanner;

public class Array {
	public static void main(String[] args) {
		String s = "Codelearn";
		System.out.println(s.indexOf("learn"));
		System.out.println(s.indexOf("black"));
	}
}

Kết quả khi chạy chương trình:

4
-1

6. Phương thức startsWith và endsWith

Phương thức này dùng để kiểm tra một xâu có bắt đầu hoặc kết thúc băng một xâu khác không. Ví dụ:

import java.util.Scanner;

public class Array {
	public static void main(String[] args) {
		String name = "Codelearn";
		System.out.println(name.startsWith("Code"));
		System.out.println(name.startsWith("abc"));
		System.out.println(name.endsWith("rn"));
		System.out.println(name.endsWith("z"));
	}
}

Kết quả khi chạy chương trình:

true
false
true
false

7. Phương thức split

Phương thức này dùng để tách một xâu ra thành mảng các xâu dựa trên một xâu cho trước. Ví dụ:

import java.util.Scanner;

public class Array {
	public static void main(String[] args) {
		String s = "Welcome to codelearn!";
		String[] words = s.split(" ");
		for(String word:words) {
			System.out.println(word);
		}
	}
}

Kết quả khi chạy chương trình:

Welcome
to
codelearn!

8. Phương thức substring

Đây là phương thức dùng để lấy ra một xâu con dựa trên chỉ số bắt đầu và chỉ số kết thúc của một xâu khác. Ví dụ:

import java.util.Scanner;

public class Array {
	public static void main(String[] args) {
		String name = "Codelearn";
		System.out.println(name.substring(0, 2));
		System.out.println(name.substring(0, 4));
		System.out.println(name.substring(4));
	}
}

Kết quả khi chạy chương trình:

Co
Code
learn

Đọc tới đây bạn đã biết về một số phương thức dùng để xử lý xâu. Quay trở lại phần bài tập, bạn có thể dùng phương thức toLowerCase()indexOf() để giải bài này.

Hướng dẫn

Do bài tập yêu cầu tìm vị trí đầu tiên mà xâu s2 xuất hiện trong s1 không phân biệt in thường/in hoa nên bạn cần chuyển 2 xâu này về cùng một dạng là in thường hoặc in hoa, sau đó sử dụng phương thức indexOf() giống như sau:

import java.util.Scanner;

public class Array {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String s1 = sc.next();
		String s2 = sc.next();
		s1 = s1.toLowerCase();
		s2 = s2.toLowerCase();
		System.out.print(s1.indexOf(s2));
	}
}

Post Comment

Contact