Имеется следующий код:
package com.company;
public class Main {
public static void main(String[] args) {
String[] arr = {"+5", "-3"};
int a = 0;
for (int i = 0; i<arr.length; i++){
if (arr[i].contains("+")){
arr[i].replace('+',' ');
}
else if (arr[i].contains("-")){
arr[i].replace('-',' ');
}
System.out.print(arr[i]+" ");
}
}
}
Задача программы - изъятие элемента массива, определение знака для вычисления и последующее вычисление. a - начальное число. Другого способа удаления +/-, после определения знака, не нашёл, но и этот не работает. В чём ошибка?
Не работает, потому что строки неизменяемые. Вы пытаетесь в строке arr[i]
заменить +
на пробел, но он не заменится, вместо этого метод replace
вернёт вам новую строку, в которой +
будут заменены на пробел. Соответственно чтобы код работал, нужно писать так:
arr[i] = arr[i].replace('+',' ');
Предлагаю такое решение, учитывая что a с типом int, т.е. не дробное, то результат будет с усечением:
public class Test {
public static void main(String[] args) {
String[] arr = {"+5", "-3", "*5", "/2", "%2"};
int a = 0;
for (int i = 0; i<arr.length; i++){
// получим знак операции
char sign = arr[i].toCharArray()[0];
// получим число, и произведём автораспаковку в примитив int
int num = Integer.valueOf(arr[i].substring(1));
// условия для знака операции
switch(sign){
case '+' : a += num; break;
case '-' : a -= num; break;
case '*' : a *= num; break;
case '/' : a /= num; break;
case '%' : a %= num; break;
}
}
// результат
System.out.print(String.format("Result: %d", a));
}
}
Поскольку вы задаете числа строками, можно их конвертировать встроенными средствами:
public static void main(String[] args) {
String[] arr = {"+5", "-3"};
int result = 0;
for (String numStr : arr) {
result += Integer.parseInt(numStr);
}
System.out.println(result);
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Я разрабатываю клавиатуру используя EditText и Button-ыПри нажатии на кнопку, текстовое поле заполняется соответствующей буквой
Есть кнопка, при нажатии на которую проигрывается звук и меняется цветКак заставить через время возвращать кнопку первоначальный цвет и добавить...
Доброго времени суток! Есть шаблон Word(doc), его необходимо открыть и на место закладок, которые имеются в документе, вставить текст, после сохранить...