Как я могу получить несколько символов из строки? - PullRequest
1 голос
/ 27 сентября 2011

Я пытаюсь получить 5-ю, 6-ю и 7-ю цифры из списка цифр.

Например, я хочу вывести год из переменной dateofbirth и сохранить ее как отдельную переменнуюназывается dob, как int.

Вот что у меня есть:

int dateofbirth = 17031989
String s = Integer.toString(dateofbirth);
int dob = s.charAt(5);

Что бы мне пришлось поставить в скобки после s.charAt, чтобы получить несколько цифрподряд?

Ответы [ 9 ]

6 голосов
/ 27 сентября 2011

Нет необходимости в преобразовании строки:

int dateofbirth = 17031989;
System.out.println(dateofbirth%10000); //1989

Если вы хотите сделать это как строку, то метод substring () будет вашим другом. Вам также необходимо использовать Integer.parseInt() для преобразования строки обратно в целое число. Принятие значения символа в качестве целого числа даст вам значение ASCII этого символа, а не целое число, представляющее этот символ!

2 голосов
/ 27 сентября 2011

Вы хотите использовать String.substring (не проверено):

int dateofbirth = 17031989;
String s = Integer.toString(dateofbirth);
String year = s.substring(4, 8);
int yearInt = Integer.parseInt(year);
1 голос
/ 27 сентября 2011

Если вы обрабатываете даты, вы можете использовать SimpleDateFormat и Calendar для извлечения года:

SimpleDateFormat formatter = new SimpleDateFormat("ddMMyyyy"); 
Calendar cal = Calendar.getInstance();
cal.setTime(formatter.parse(Integer.toString(dateofbirth)));
int year = cal.get(Calendar.YEAR);
1 голос
/ 27 сентября 2011

s.substring(5) даст вам все, начиная с индекса 5.Вы также можете указать второй аргумент, чтобы указать, где должна заканчиваться подстрока.

0 голосов
/ 27 сентября 2011
Integer.parseInt(s.subString(4))
0 голосов
/ 27 сентября 2011

Из документации JRE: getChars

0 голосов
/ 27 сентября 2011

Этот подход не будет работать по нескольким причинам:

  1. s.charAt (5) даст вам код ASCII 6-го символа (который не является 9).
  2. Нет способа получить несколько символов

Если вы хотите извлечь 1989 из этой строки, вы должны использовать подстроку, а затем преобразовать эту строку в целое число, используя Integer.valueOf ()

0 голосов
/ 27 сентября 2011
0 голосов
/ 27 сентября 2011

вы делаете:

String s = String.valueOf(dateofbirth);
int yourInt = Integer.parseInt(s.substring(startIndex,length))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...