0

我正在尝试比较 2 个不同的字符串。但我不是在看它们是否完全相同,我在看它们是否包含相同的位数。

示例:如果我的String b = 1234567891234567和我输入了String a = abcdefghijklmnop,我想知道它们是否具有相同的位数,

import java.util.*;

class Test{

    public static void main(String[] args){
        Scanner lector = new Scanner(System.in);
        String a;
        String b = new String("1234567891234567");

        System.out.println("Enter your number");
        a = lector.nextLine();

        if(a.length() == b.lenght()){
            System.out.println("They have the same number of digits");

        }else{
            System.out.println("They dont have the same number of digits");
        }
    }
}

我知道我不能使用,==因为它们是整数。如果我使用 equals 语句,程序将比较输入的字符串是否与另一个字符串完全相同。

我希望有一个人可以帮助我。

谢谢

4

2 回答 2

3

您可以使用以下方法提取数字:

str.replaceAll("\\D+","");

然后比较字符串的长度。

对于您的示例:

public static void main(String[] args){
    Scanner lector = new Scanner(System.in);
    String a;
    String b = new String("1234567891234567");

    System.out.println("Enter your number");
    a = lector.nextLine();

    if(a.replaceAll("\\D+","").length() == b.replaceAll("\\D+","").length()){
        System.out.println("They have the same number of digits");

    }else{
        System.out.println("They dont have the same number of digits");
    }
}
于 2013-04-12T17:25:23.160 回答
2

如果您必须检查字符串的长度,那么只需使用

a.length() == b.length()
于 2013-04-12T17:30:08.470 回答