Я работаю над проектом, чтобы найти корни и дискриминанты из введенного квадратного уравнения в стандартной форме. Я попал в блокпост, пытаясь вытащить коэффициенты из уравнения. Я думаю, что я все установил расположение коэффициентов (A, B, C), но мне не удается получить фактические цифры из ввода пользователя. (Последний блок кода предназначен для CoeffA int, который я пытаюсь найти. Я ушел из CoeffB и CoeffC, чтобы сэкономить место здесь.) Любая помощь или советы по очистке моего кода и извлечению коэффициента из пользовательского ввода будет много оценили. У меня были проблемы со струнами. БлагодаряПоиск переменных из строки
import java.math.*;
import java.util.Scanner;
public class QuadProject2{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int CoeffA=0;
int CoeffB=0;
int CoeffC=0;
double root1;
double root2;
double disc;
double root1new;
double root2new;
final String SENTINEL = "quit";
do{
System.out.println("Enter a quadratic equation in standard form");
String quad=sc.nextLine();
if(quad.equals("quit")){
break;
}
while (!quad.equals((SENTINEL)));
if(quad != "quit" || quad == "0"){
**int pos = quad.indexOf("x");
int pos2 = quad.indexOf("x", pos);
int pos3 = quad.indexOf("=");
//This should extract the a,b,and c coefficients from the user entry
*int CoeffA=(0,pos);*
if(CoeffA>0){
double a=Double.parseDouble(CoeffA);
}
if(CoeffA==0){
return int 1;
}
if(CoeffA<0){
return int -1;
}****
Ничего общего с вашим вопросом, но вы использовали 'equals' правильно, когда сравнивали' quad' пару раз, но затем проскальзывали и использовали 'quad! =" бросить курить "'. – ajb
Я предлагаю вам Google для «учебника по регулярному выражению java» и прочитайте об этом. Это проблема, которую вы не можете решить с помощью 'indexOf'. Регулярные выражения облегчат вашу работу. В противном случае вам нужно будет написать цикл, который использует 'charAt', чтобы посмотреть на каждый символ и посмотреть, является ли это цифрой или какой-либо другой частью числа. То, что вы пытаетесь сделать здесь, является довольно сложной задачей для нового программиста. – ajb
Кроме того, поскольку единственный способ избежать 'do/while()' состоит в том, чтобы сделать 'quad.equals (« quit »)', 'if()', который следует, в основном 'if (false || quad == 0) ', который можно упростить до' if (quad == 0) '. – hfontanez