比较字符串是否具有相同的位数

时间:2013-04-12 17:24:12

标签: java

我试图比较两个不同的字符串。但是我不知道他们是否完全一样,我在寻找它们是否含有相同数字的位数。

实施例: 我的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语句,程序将比较输入的字符串是否与其他字符串完全相同。

我希望有人可以帮助我。

由于

2 个答案:

答案 0 :(得分: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");
    }
}

答案 1 :(得分:2)

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

a.length() == b.length()