2014-01-06 58 views
2

我正在製作一個涉及種子生成世界的應用程序,並且一些遊戲可讓您爲該種子提供文本。我想知道你會如何「轉換」一個字符串爲整數。如何將字符串轉換爲64位整數?

一個簡單的方法是使用所有字符的ASCII值並將它們追加到一個字符串中,然後將該字符串解析爲一個整數,但這嚴重限制了字符串的大小。你將如何能夠用更大的字符串來做到這一點?

編輯:64位不是32

+0

http://stackoverflow.com/questions/5688042/how-to-convert-a-java-string-to-an-ascii-byte-array – SaggingRufus

+0

我會建議一個字符串字節的加密散列。 –

回答

6

我只想叫String.hashcode()。標準String.hashcode()函數利用目標字符串中的所有字符並提供良好的分散性。

我唯一會質疑的是32位種子是否足夠。它可能是可能是意味着你的世界發電機最多可以產生不同的世界。

+0

不知道爲什麼我寫的32位我的意思是64:P – Ryxuma

3

Random的隨機種子至少可以是48位,理想的情況是64位。你可以編寫你自己的散列碼。

public static long hashFor(String s) { 
    long h = 0; 
    for(int i = 0; i < s.length(); i++) 
     h = h * 10191 + s.charAt(i); 
    return h; 
} 
-1

將字符串轉換爲整數的標準方法是使用Integer.parseInt(String); 你將字符串傳遞給它,它會將字符串轉換爲int。試試吧,讓我知道!

+0

那麼如果你做'Integer.parseInt(「abcdefgh13uhfds」)'會發生什麼? –