關於uuid型別的轉換

2021-06-29 15:48:15 字數 1321 閱讀 9675

對於沒有分隔符的uuid字串轉換方式如下:

public static uuid fromstringwhitouthyphens(string str) 

string s1 = "0x" + str.substring(0, 8);

string s2 = "0x" + str.substring(9, 12);

string s3 = "0x" + str.substring(13, 16);

string s4 = "0x" + str.substring(17, 20);

string s5 = "0x" + str.substring(21, 32);

long mostsigbits = long.decode(s1).longvalue();

mostsigbits <<= 16;

mostsigbits |= long.decode(s2).longvalue();

mostsigbits <<= 16;

mostsigbits |= long.decode(s3).longvalue();

long leastsigbits = long.decode(s4).longvalue();

leastsigbits <<= 48;

leastsigbits |= long.decode(s5).longvalue();

return new uuid(mostsigbits, leastsigbits);

}

uuid.nameuuidfrombytes(name)方法並非是把byte型別轉換為uuid型別,這點需要新手注意。

實際的轉換方法如下:

public static uuid frombyte(byte data) 

long msb = 0;

long lsb = 0;

for (int i = 0; i < 8; i++)

msb = (msb << 8) | (data[i] & 0xff);

for (int i = 8; i < 16; i++)

lsb = (lsb << 8) | (data[i] & 0xff);

return new uuid(msb, lsb);

}

uuid轉換為byte的方法

public static byte tobyte(uuid uuid)  catch (ioexception e) 

return ba.tobytearray();

}

關於型別轉換

關於型別轉換,這裡只列舉類之間的型別轉換 其難點有在基類和派生類之間的資料型別轉換 在物件導向程式設計中,派生類實際上是基類的例項,但加上了一些額外資訊.在基類上所有的函式和字段也都在派生類上定義了,所以派生類可以隱式轉換為基類,看下面的例子 equals eq1 new equalss 基類和派生...

關於型別轉換

一 號 在不同的情況下作用是不同的 1.字串 字串 字串 2.字串 數字 字串 3.數字 數字 數字 4.作為正號時,可以將字串轉化成數字 eg typeof 1 2 型別是number 結果是3 二 號 無論什麼情況下都是數字相減,進行隱式轉化成數字 三 與 的區別 1.可以將字串轉化成數字 2....

關於js的型別轉換?

boolean 除了 undefined,null,0,0,nan,false,之外 都轉換為true,包括所有物件!物件在轉換 是呼叫 symbol.toprimitive 方法來進行轉換 運算中 一方 為字串的話,會將另一方也轉換為字串 如果一方不是字串或者數字的話,會將另一方轉換成數字或者字串...