01/10/2018, 14:37

Char.equals(string)? java

làm sao để so sánh được 2 giá trị ch và s2 kia là bằng nhau ạ?

package kethuaoop;

import java.util.Scanner;

public class main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s1 = "thanh";
        String s2 = "an";
        char ch[] = new char[30];
        s1.getChars(2, 2 + s2.length(), ch, 0);
        System.out.println(ch.toString());
        System.out.println("Chuỗi s2 là: " + s2.toCharArray());
        System.out.println(ch.equals(s2));
    } 
}

đây là output ạ

*grab popcorn* viết 16:42 ngày 01/10/2018

3 posts were merged into an existing topic: Topic chứa các reply được cho là off-topic - version 2

Gom thành 1 bài thôi, đây không phải Facebook nên hạn chế post liên hồi như thế nha.

Duy Khanh viết 16:47 ngày 01/10/2018

Mảng char của bạn khai báo là độ dài 30, trong khi chuỗi s2 chỉ dài có 2 thôi, có thể sai ở đấy đấy.

Mà mình chưa thử so sánh theo kiểu (char array).equals(string) bao giờ, đang không ngồi máy nên không test được.

Thường là convert mảng char sang string rồi so sánh:
s2.equals(new String(ch))
Hai là convert String sang mảng char rồi so sánh:
Arrays.equals(s2.toCharArray(), ch)

Monochorme viết 16:42 ngày 01/10/2018

ui em làm đc rồi bác ơi, phải s = new String(ch); nữa rồi mới equals đc :v khổ

Duy Khanh viết 16:53 ngày 01/10/2018

Đúng rồi bạn, cái ch.equals(s2) nó chỉ so sánh 2 tham chiếu thôi bạn, nên sai là phải rồi

Bài liên quan
0