Я пишу программу для выполнения различных вычислений с помощью векторных функций, но программа, которую я на сегодняшний день ограничивает отрицательными цифрами. Я пробовал использовать разные разделители, но я не могу найти правильный.Как разбить строку на целые положительные и отрицательные числа?
Кто-нибудь знает, как сохранить положительные и отрицательные цифры при разделении строки? Кроме того, существует ли способ сохранить десятичные значения? +0,45 вернуться бы 45 и 0,29 вернется 29
Это код:
ArrayList<Integer> list = new ArrayList<Integer>();
String twoVectors = "a=<-1,2,-3> b=<4,-5,6>"; // vector and a and b
String[] tokens = twoVectors.split("\\D");
for (String s : tokens)
if (!s.equals(""))
list.add(Integer.parseInt(s));
System.out.println(Arrays.toString(list.toArray()));
Когда я запускаю программу, я получаю [1, 2, 3, 4, 5, 6] вместо [ -1, 2, -3, 4, -5, 6]. Все функции, которые я работал отлично, но не работают при использовании отрицательных значений.
Любая помощь будет оценена по достоинству.
с регулярным выражением, вы можете легко использовать '-? \ D' – ultrajohn
Я бы не стал полагаться на split здесь, но если у вас есть только целые числа, и строка отформатирована хорошо, вы действительно можете использовать' .split ("[^ 0-9 -] + ")'. Чтобы избавиться от первого пустого элемента, сначала используйте '.replaceFirst («^[^ 0-9 -] + »,« »). –