2013-02-19 28 views
2

我不知道如何分割的零件一個數字,然後比較它們彼此(JAVA)如何分割的零件一個數字,然後他們互相比較

舉例來說,我已經有了一套數字

989010 
990009 
991008 
992992 
993006 
994005 
995004 

,我想每一個數字的劃分在兩個部分 - >>

if it's 989010 -- it will be like '989' and '010'. 

在那之後,我想我可以比較兩個字符串,對不對?

我的意思是,

'989' != '010' true 
    '990' != '009' true 
    '992' != '992' false 

看來我應該使用拆分功能,但是我困惑如何在事先只在兩個部分,而不是更

感謝分開!

+0

在你的情況下,一個簡單的'substring()'就可以完成這項工作。爲了比較,看看[如何比較Java中的字符串](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) – jlordo 2013-02-19 08:45:51

+2

所有數字都有6位數或它可能會有所不同 ? – giorashc 2013-02-19 08:46:27

+0

@giorashc是的,他們做 – Leo 2013-02-19 08:46:53

回答

8
String str = "989010"; 

System.out.println(str.substring(0, 3).equals(str.substring(3,6))); 
4

你可以這樣做有幾種方法。

無論是String.substring它會給你兩個字符串或者你可以劃分數

int number = 123456; 
int firstPart = number/1000; 
int secondPart = number - firstPart * 1000; 

編輯
對不起爲 - 在匆忙。
爲了彌補它,我將再次證明,值得解決任何問題,可與regex(通常莫名其妙)語言來解決:

final String[] strings = new String[]{"123123", "123456"}; 
    final Pattern pattern = Pattern.compile("([\\d]{3})\\1"); 
    for (final String string : strings) { 
     final Matcher matcher = pattern.matcher(string); 
     if (matcher.matches()) { 
      System.out.println(string + " matches."); 
     } 
    } 

輸出:

run: 
123123 matches. 
BUILD SUCCESSFUL (total time: 0 seconds) 

而且甚至還需要公頃,0 seconds,公頃。

+0

時,我遇到了這個麻煩,在發佈之前運行你的代碼並查看輸出。這隻會這樣工作:'int secondPart = number - firstPart * 1000;' – jlordo 2013-02-19 08:52:05

+0

'123456/1000 == 123' **!= **'123456-123 == 123333' – Maroun 2013-02-19 08:53:21

+0

@MarounMaroun:沒有其他人有這個方法,所以我將它修復爲bmorris591 – jlordo 2013-02-19 08:56:27

1
Long number = 989010L; 
    String text = number.toString(); 
    String firstPart = text.substring(0,3); 
    String secondPart = text.substring(3); 

    Long firstNumber = Long.parseLong(firstPart); 
    Long secondNumber = Long.parseLong(secondPart); 

    System.out.println(firstNumber == secondNumber); 
1

看看這個

public static void main(String[] args) { 

     String[] values = { "989010", "990009", "991008", "992992", "993006", "994005", "995004" }; 

     for(String value : values) { 
      String firstPart = value.substring(0, 3); 
      String secondPart = value.substring(3); 
      if(firstPart.equals(secondPart)) { 
       System.out.println(firstPart + " equals " + secondPart); 
      } 
     } 
    } 
1
`String s = "931492"; 
int first = Integer.parseInt(s.substring(0, s.length()/2)); 
int second = Integer.parseInt(s.substring(s.length()/2)); 
if (first != second) 
{ 
    System.out.println("Not equal"); 
}` 

編輯:好的,我是在比較錯誤的子串,對不起那個。在比較Java中的字符串時,你也應該使用equals()。我更新了我的代碼以生成兩個整數。可能會提供額外的比較功能。

+2

'=='和'!='在'String'上使用 - 比較引用而不是內容本身。除非它們指向'字符串池'中的相同'String',否則它們將始終爲'不等於'。 – Maroun 2013-02-19 09:00:01

相關問題