2015-09-04 2 views
-2

У меня есть строка вида: 450ZVXX_OF_INV_CC 3, которая в основном состоит из трех частей: Колонка 1 имеет 3 цифры (в данном случае цифры 450), Колонка 2 имеет 30 цифр (в этом случае цифры и пробелы до 3) и Столбец 3 имеет 3 цифры.Расщепление вверх Строка заданными цифрами в Java

Теперь мне нужно, чтобы разделил строку на три части, используя цифры 3, 30, 3 (хранится в ints), потому что мне нужно построить таблицу с вышеупомянутыми тремя столбцами.

Так что я в основном хочу взять int1 = 3, получить первые 3 цифры строки. Затем я беру int2 = 30, получаю следующие 30 цифр строки. И затем я беру int3 = 3, чтобы получить следующие 3 цифры строки.

FYI: Значения длины 3, 30, 3 представляют собой заданную длину столбца системой базы данных.

Regex не полезен, потому что у меня нет никаких цифр или символов, которые я использую для разделения строки. Я просто буду использовать заданные числа, как описано выше.

Язык программирования: Java

Спасибо заранее!

+8

'String.substring (0, 3). String.substring (3, 30 + 3). String.substring (30 + 3). ' –

+1

Regex на самом деле не является необходимым инструментом здесь. http://stackoverflow.com/questions/3481828/how-to-split-a-string-in-java – frhd

+0

@FranMontero должна быть запятая (,) вместо точки (.) в методе 'substring()'. – Rustam

ответ

0

Вы можете написать код, используя метод String.substring.

public class SubStrings { 
    public static void main(String[] args) { 
    String input = "450ZVXX_OF_INV_CC     3"; 
    int first = 3; 
    int second = 30; 
    String part1 = input.substring(0, first); 
    String part2 = input.substring(first, first+second); 
    String part3 = input.substring(first+second); 
    System.out.println(part1); 
    System.out.println(part2); 
    System.out.println(part3); 
    } 
} 
0

Это будет работать на вас.

public class SubStrings { 
    public static void main(String[] args) { 
    String abc="123456789101112131415151617181999123"; 
    Integer first = Integer.parseInt(abc.substring(0, 3)); 
    BigInteger second = new BigInteger(abc.substring(3, 30)); 
    Integer third = Integer.parseInt(abc.substring(33, 36)); 
    System.out.println(first); 
    System.out.println(second); 
    System.out.println(third); 
    } 
} 
+0

Третья подстрока может вызывать 'StringIndexOutOfBoundsException', если длина строки меньше 36. Даже такая же происходит для строки примера, заданной в вопросе. – YoungHobbit

+0

@abhishekbafna Строка, которую он предоставил, кажется просто примером, поскольку он упомянул «** Колонка 1 ** имеет ** 3 цифры **», «** Колонка 2 ** имеет ** 30 цифр **», «* * Столбец 3 ** имеет ** 3 цифры ** "выделено. – Yadvendra

+0

@Jan Konrad Пожалуйста, уточните вопрос. Возможно ли иметь меньше цифр, чем 36? – Yadvendra

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