2013-04-12 55 views
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语句,程序会比较输入的字符串是否与另一个字符串完全一致。

我希望有人能帮助我。

感谢

+1

请提供首次运行的代码,我想知道,如果我花时间去帮助你用这个我并不需要帮助你克服语法错误。 – djechlin

+3

“数字”你的意思是“字符”? – NPE

回答

2

,如果你要检查字符串的长度,然后只需使用

a.length() == b.length() 
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"); 
    } 
} 
+0

我试过这种方式,但它没有奏效。 –

+0

当它问我:输入你的号码,我输入:abcdefghijkmnlop后,这样做的消息:他们没有相同数量的数字显示。如果你把1234567891234567和abcdefghijkmnlop这两个数值都计算在内,他们有相同数量的数字 –

+1

这里的困惑在于使用单词“digits”而不是“characters”。尼克的答案确实检查了数字的位数是否相同,但不是字符的数量,这就是你想要的。 “数字”是数字,从1到0.“字符”是属于字符串的任何符号 - 字母,数字,标点符号等等。 –

相关问题