Манипуляция строк в Java - PullRequest
       2

Манипуляция строк в Java

1 голос
/ 27 февраля 2011

У меня есть один массив строк. Я хочу получить каждую строку, разделить ее на 3 части (число-номер строки) и поместить каждую часть в другой массив. Наконец, я хочу иметь 3 массива, два из которых хранят числа, а один - строки. Количество пробелов между числами и строками не фиксировано.

формат строк в первом массиве:

-2.2052 Далам -2.7300

-3.0511 дан акан -0.1116

Будет здорово, если вы поможете мне с примером кода.

Ответы [ 4 ]

2 голосов
/ 27 февраля 2011

Вот алгоритм, который вы могли бы реализовать:

  1. Создайте 3 выходных массива. Все они должны иметь ту же длину, что и исходный строковый массив
  2. переберите исходный массив.
  3. для каждой строки найдите индекс первого пробела и индекс последнего пробела. (посмотрите на javadoc класса String для методов, делающих это)
  4. извлечь подстроку перед первым пробелом, подстроку между первым и последним пробелом и подстроку после последнего пробела. Javadoc должен помочь вам.
  5. Преобразование первой и третьей подстроки в int (как это сделать, см. В javadoc для Double)
  6. сохраняет значения типа double и строку в выходных массивах.
0 голосов
/ 27 февраля 2011

Обычно каждый язык программирования имеет функции для работы со строковыми данными.Общий набор функций:

  1. длина (или длина) - чтобы получить длину строки
  2. найти (или indexOf или что-то подобное) - найти позицию символа подстроки
  3. подстрока (или substr) - получить подстроку из N символов из позиции P

часто

  1. влево / вправо - чтобы получить подстроку из N символов слева или справа от строки
  2. Trim / leftTrim / rightTrim - обрезать с левой и / или правой стороны строки все пробелы или указывать в качестве символа параметра функции.

Всегда, когда вам нужно работать со строковыми данными, попробуйте прочитать документацию или Google.Вы всегда найдете информацию в Интернете.Удачи!

0 голосов
/ 27 февраля 2011

Вы можете использовать indexOf и lastIndexOf для достижения этой цели. Попробуйте следующее:

        String arrayWithStringAndNumber[] = new String[2];
        arrayWithStringAndNumber[0] = "-2.2052 dalam -2.7300";
        arrayWithStringAndNumber[1] = "-3.0511 dan akan -0.1116";

        String numArray1[] = new String[2];
        String numArray2[] = new String[2];
        String strArray[] = new String[2];

        String temp;
        for (int i = 0; i < arrayWithStringAndNumber.length; i++) {
            temp = arrayWithStringAndNumber[i];
            numArray1[i]=temp.substring(0,temp.indexOf(" "));
            numArray2[i]=temp.substring(temp.lastIndexOf(" ")+1);
            strArray[i]=temp.substring(temp.indexOf(" ")+1,temp.lastIndexOf(" "));
        }

Убедитесь, что все массивы имеют одинаковую длину. Для num массивов используйте type все, что вы хотите. Я думаю, что вам может понадобиться удвоить, и тогда вы можете легко разобрать значение, чтобы вписаться в него.

Надеюсь, это поможет.

0 голосов
/ 27 февраля 2011

Вы можете использовать indexOf(int ch) и lastIndexOf(int ch) из String объекта, чтобы найти первый и последний символ пробела и разделить строку, используя эти два индекса.Вы также можете trim часть средней строки, если это необходимо.

Итак:

String[] input; // given
Double[] firstNumbers = new Double[input.length];
String[] middleParts = new String[input.length];
Double[] secondNumbers = new Double[input.length];

for(int i = 0; i < input.length; i++) {
   String line = input[i];
   int firstWhitespace = line.indexOf(" ");
   int lastWhitespace = line.lastIndexOf(" ");
   String firstNumber = line.substring(0, firstWhitespace);
   String middlePart = line.substring(firstWhitespace, lastWhitespace+1);
   String secondNumber = line.substring(lastWhitespace+1, line.length());

   // parse numbers to double, add to an array
   firstNumbers[i] = Double.parseDouble(firstNumber);
   middleParts[i] = middlePart;
   secondNumbers[i] = Double.parseDouble(secondNumber);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...