2010-03-13 3 views
0

как можно получить, например, целое число codeInt = 082 из строки кода = «A082» я попытался это:нужна помощь с ParseInt

int codeInt = Integer.parseInt(code.substring(1,4)); 

и я получаю codeInt = 82, она покидает первый 0 но я хочу полный код '082'.

Я думал о parseInt(String s, int radix), но я не знаю как.

любая помощь будет оценена по достоинству.
спасибо.

+0

@Mona - как сказал Томас, вам придется работать со String, потому что 082 не является целым числом/восьмеричным. – RubyDubee

ответ

2

Целое число просто хранит номер. Числа 82 и 082 (и 0082 и 000000082 в этом отношении) являются точно такими же (если вы не поместите их в исходный код на некоторых языках таким образом, тогда вы получите ошибку компилятора) .

Если вам отчаянно нужен начальный ноль, вам следует либо оставить его как строку, либо отформатировать номер соответствующим образом для вывода позже.


Благодаря конструкторам C, имеющим остроумную идею, что писать константы восьмеричных с предшествующим нулем, было бы круто. Как будто что-то вроде 0o123 бы, что трудно осуществить, когда вы уже получили 0xf00 ...

0

Если вы хотите 0000123, то вам нужно угроза переменной в виде строки, а не Integer. Просто: 123 равен 000123 и 0123 и 0000...1 billion zeros here...000123.

Но если вы просто хотите отобразить номер с фиксированной длиной, используйте System.out.format().

1

номер82 и 082 и 0082 математически такое же количество, и представлена ​​в той же последовательности битов. Вы не можете кодировать число ведущих нулей в int (хотя вы можете, конечно, распечатать его в любом формате, который вы выберете).

Заметим также, что номер082 отличается от Java буквальным082, который является (недействительный) восьмеричный литерал.

int i = 010; 
System.out.println(i); // this prints 8 
1

082 не является целым числом. Это строка, представляющая целое число 82. Если вам нужно, чтобы ведущие нули оставались нетронутыми, вам нужно будет работать со строками. Если вам нужна только печать 082, вы можете использовать java.text.MessageFormat или System.out.format() или другие аналогичные решения для печати таким образом.

+0

+1 - ты сказал это чувак! – RubyDubee