#java #string #equations
#java #строка #уравнения
Вопрос:
У меня есть уравнение a b-c * d . я считываю значения a, b, c, d из другого файла, они хранятся у меня в двойном массиве.
как мне заменить a / b / c / d числовым значением из массива? Я пробовал это,
String l2; //getting the equation string in this from other part of the code.
//assume a b-c*d
Double[] secondOperators = new Double[4];
public String getSecondString()
{
l2 = l2.replace("a",toString(secondOperators[0]));
l2 = l2.replace("b",toString(secondOperators[1]));
l2 = l2.replace("c",toString(secondOperators[2]));
l2 = l2.replace("d",toString(secondOperators[3]));
return l2;
}
Результатом стала ошибка во время компиляции
ошибка: метод toString в class Object не может быть применен к заданным типам;
l2 = l2.replace("a",toString(secondOperators[0]));
^
требуется: нет аргументов
найдено: Double
причина: фактические и формальные списки аргументов отличаются по длине
Комментарии:
1. и результат был …?
2. @JBNizet отредактировал вопрос с ошибкой
Ответ №1:
Используйте String.valueOf(secondOperators[0])
вместо toString(secondOperators[0])
Редактировать :
public static String getSecondString()
{
String l2="a b-c*d";
Double[] secondOperators = {22.03,334.34,34.57,231.98};
l2 = l2.replace("a",String.valueOf(secondOperators[0]));
l2 = l2.replace("b",String.valueOf(secondOperators[1]));
l2 = l2.replace("c",String.valueOf(secondOperators[2]));
l2 = l2.replace("d",String.valueOf(secondOperators[3]));
return l2;
}
Комментарии:
1. не найден подходящий метод для replace(char,String) l1 = l1.replace(‘a’,String.valueOf(firstOperators[1])); ^ метод String.replace(char,char) неприменим (несоответствие аргументов; Строка не может быть преобразована в символ) метод String.replace(CharSequence,CharSequence) неприменимо (несоответствие аргументов; символ не может быть преобразован в CharSequence)
2. Почему вы изменили свой
"a"
with'a'
, вы не можете использоватьreplace
withone char
иone string
. ПрочитайтеString JavaDoc
и получите больше идей. Смотрите мой отредактированный ответ, он работает.3. Почему? Голоса за вопросы, которые могут быть полезны кому-то еще. Боюсь, ваш вопрос не в этом.