как подставлять значения для символов в уравнении

#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 with one char и one string . Прочитайте String JavaDoc и получите больше идей. Смотрите мой отредактированный ответ, он работает.

3. Почему? Голоса за вопросы, которые могут быть полезны кому-то еще. Боюсь, ваш вопрос не в этом.