2015-11-24 45 views
1

我想驗證一個字符串是一個UUID。顯然我不明白什麼是有效的UUID。這就是我認爲是一個無效UUID - 55bb6be3-078c-4a49-a4e6-1e05776ed7e81234爲什麼UUID.fromString()不會爲此UUID拋出IllegalArgumentException?

但是當我傳遞給UUID.fromString(),而不是拋出IllegalArgumentException,它返回一個UUID與價值55bb6be3-078c-4a49-bee7-776ed7e81234

+0

雖然它匹配'8-4-4-4-12',這是一個正確的UUID – Valijon

+0

我想這就是要點 - 它是'8-4-4-4-16'。 –

+1

我明白了。 @ user26270,您可以驗證此鏈接中解釋的UUID [http://expertdevelopers.blogspot.com.es/2013/07/uuid-simple-technique-for-uuid.html](http://expertdevelopers.blogspot.com .es/2013/07/uuid-simple-technique-for-uuid.html) – Valijon

回答

1

拋出IllegalArgumentException,應該有不到4個短線 - 或5個組件。下面是拋出異常的代碼部分:

String[] components = name.split("-"); 
if (components.length != 5) 
    throw new IllegalArgumentException("Invalid UUID string: "+name); 

您的輸入不是無效的,它有飛越成分,因此返回UUID從輸入不同。

相關問題