2013-04-10 2 views
1

Мне нужно написать программу, которая заставит пользователя набирать строку date (например, 10/21) один раз и преобразовывать эту строку в целые числа. Я полагаю, что разделение необходимо перед разбором?Строковый ввод, разбор, разделение

import java.util.Scanner; 
public class ConvertDates { 
    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 
     System.out.print("Please input a date (mm/dd): "); 
     String k = input.next(); 
     k = String.split("/"); 
     int mm = Integer.parseInt(k); 
     int dd = Integer.parseInt(k); 

ответ

6

Когда вы разбиваете строку, вы не получите строку, вы получите массив строк. Таким образом, вы должны были бы назвать

String[] k2 = k.split("/"); 

, то вы можете получить свой месяц и день с

int mm = Integer.parseInt(k2[0]); 
int dd = Integer.parseInt(k2[1]); 
3

String#split возвращает String массив. Вы должны использовать элементы возвращенного массива:

String[] strings = k.split("/"); 
int mm = Integer.parseInt(strings[0]); 
int dd = Integer.parseInt(strings[1]); 
4
String[] tokens = k.split("/"); 
int mm = Integer.parseInt(tokens[0]); 
int dd = Integer.parseInt(tokens[1]); 

Поскольку split() метод возвращает массив строк, вы должны использовать выше код.

2

Или даже

Scanner dates = new Scanner(k); 
    dates.useDelimiter("/"); 
    int mm = dates.nextInt(); 
    int dd = dates.nextInt(); 

и тогда вам не нужно разбирать целое

Смежные вопросы