Если вы хотите, чтобы лечить Int, как если бы оно было без подписи вы можете
int i = ...
String s = String.format("%d", i & 0xFFFFFFFFL);
Это фактически превращает подписанный Int в длинный, но это будет от 0 .. 2^31-1
Чтобы сделать наоборот вы можете сделать
int i = (int) Long.parseLong(s);
String s2 = String.format("%d", i & 0xFFFFFFFFL);
И s2
будет такой же, как s
при условии, что находится в пределах досягаемости.
BTW: Проще всего сделать это, возможно, в первую очередь использовать long
. Если вы не создаете много, то дополнительная память тривиальна, а код проще.
java не имеет целых без знака – Kevin
Java 8 имеет целые без знака. – boring
AFAIK Java 8 имеет API для общего обходного пути для отсутствия неподписанных типов. –