Java разделить строку и положить в позицию массива - PullRequest
0 голосов
/ 28 ноября 2018

Так что я использую string.split, потому что мне нужно взять определенные части строки, а затем распечатать первую часть.Размер части может варьироваться, поэтому я не могу использовать подстроку или математическую формулу.Я пытаюсь сохранить все, что мне нужно, в массиве строк, чтобы затем выборочно напечатать то, что мне нужно, исходя из положения, этим я могу управлять.Тем не менее, я не уверен, что делать, потому что я знаю, что когда я делю разделение, он берет две части и сохраняет их в массиве.Тем не менее, есть один случай, когда мне нужно это значение в массиве нетронутым.Боюсь, что если я сделаю

format[0] = rename

, то это перезапишет это значение и испортит весь массив.Мой вопрос: как мне назначить позицию этому значению, если я не знаю, какой будет позиция других?Нужно ли предварительно назначить ему значение или присвоить ему последнее возможное значение в массиве?Я приложил сегмент кода, который касается моего вопроса.Единственное, что я могу добавить, это то, что это находится в большем цикле, и значение переименования меняется при каждой итерации.Не обращайте особого внимания на комментарии, для меня это больше напоминание о том, что делать, а не о том, что код должен делать.Любые указатели, советы, помощь с благодарностью.

String format[];
rename = workbook.getSheet(sheet).getCell(column,row).getContents();
for(int i = 0; i < rename.length(); i++) {
    //may need to add[i] so it has somewhere to go and store
    if(rename.charAt(i) == '/') {                                
        format = rename.split("/");
    }
    else if(rename.charAt(i) == '.') {
        if(rename.charAt(0) == 0) {
           //just put that value in the array
           format = rename;
        } else {
            //round it to the tenths place and then put it into the array
            format = rename.split("\\.");
        }
    } else if(rename.charAt(i) == '%') {
        //space between number and percentage
        format = rename.split(" ");
    }
}

1 Ответ

0 голосов
/ 28 ноября 2018

Всякий раз, когда вы присваиваете переменную, она перезаписывается

format[0] = rename

Перезаписывает первый индекс этого массива строк.

В вашем примере, массив 'format' перезаписывается с каждой итерацией цикла for.После того, как цикл завершен, 'format' будет содержать только значения для самого последнего разделения.

Я бы предложил использовать ArrayList , ими гораздо проще управлять, чем традиционныммассив, и вы можете просто перебрать разделенные значения и добавить их в конце.

...