2015-11-24 59 views
-1

從我使用java開始已經有一段時間了。我試圖將00:00:00:00:00:00格式的mac地址轉換爲0000.0000.0000格式。該程序非常基本,只是要求用戶輸入mac地址。它應該轉換它並顯示轉換後的mac地址。我認爲我很接近,但只是不知道如何獲得正確的格式。我現在得到的輸出有。在正確的位置,但我不知道如何去掉冒號。任何幫助表示讚賞。請求將mac地址格式轉換爲不同格式的幫助

import java.util.*; 

public class macAdd { 

public static void main(String[] args) 
    {   
    Scanner userinput = new Scanner(System.in); 
    String mac; 
    System.out.print("Copy and paste the MAC address from system : "); 
    mac = userinput.next(); 

    char macDivide = '.'; 
    String newMac = mac.replaceAll("(.{4})", "$1"+macDivide); 

    System.out.println("Paste the following result into the system"); 
    System.out.println(" This is the correct mac " + newMac);    
}  
+0

如果'.'位於正確的位置,並且所有內容都只是調用'newMac = newMac.replaceAll(「:」,「」);'該工作 – 3kings

回答

6

您可以使用這樣的轉換:

String mac = "00:00:00:00:00:00"; 
mac.replaceAll("(\\d{2}):(\\d{2})", "$1$2").replace(':', '.'); 

它的工作原理與0000更換所有的00:00的(去掉冒號)。這會給您留下0000:0000:0000,然後您只需用句點替換冒號即可。

把它旋轉on ideone

+0

如果要使用正則表達式語法,請使用replaceAll。在其他情況下使用'replace'。所以請將'.replaceAll(「:」,「。」)'替換爲''替換(「:」,「。」)'或甚至更好'替換(':','。') char)'甚至沒有在內部使用正則表達式引擎(這是一個簡單的循環,它遍歷數組來替換我們的字符)。 – Pshemo

+0

@Pshemo - 偉大的觀點,更新,謝謝。 – nickb

+0

完全是我的想法:) –