1. 程式人生 > >從鍵盤格式化輸入

從鍵盤格式化輸入

 完成一個 java application應用程式,把已知字串(在程式中賦初值或通過鍵盤輸入) “a=3.2&b=20&c=1.1” 作為一元二次方程 ax2+bx+c=0 的a、b、c三個引數值的取值描述,並求解此方程的根。
主要思路是利用String類的index方法獲得a,b,c在輸入字串中的位置,再利用substring擷取,最後轉換為double型。

import java.util.*;

public class sp131 {
    public static void main(String[] args){
        Scanner in =
new Scanner(System.in); System.out.println("輸入格式為a=3.2&b=20&c=1.1\nPlease input:"); String name = in.nextLine(); //獲取a所對應數字兩邊的=和&的索引,以擷取數字 int indexa1 = name.indexOf("="); int indexa2 = name.indexOf("&"); //獲取b,同上 int indexb1 = name.
indexOf("=",name.indexOf("=")+1); int indexb2 = name.indexOf("&",name.indexOf("&")+1); //獲取c,同上 int indexc1 = name.indexOf("=",name.indexOf("=",name.indexOf("=")+1)+1); int indexc2 = name.length(); //通過index擷取數字 String a = name.substring(indexa1+
1, indexa2); String b = name.substring(indexb1+1, indexb2); String c = name.substring(indexc1+1, indexc2); //擷取的數字為字串,將它們轉換為double型別 double a1 = Double.parseDouble(a); double b1 = Double.parseDouble(b); double c1 = Double.parseDouble(c); if((Math.pow(b1,2)-4*a1*c1)<0){ //Δ<0無解 System.out.println("方程無解"); } else{ if((Math.pow(b1,2)-4*a1*c1)==0){ //Δ=0有唯一解 double x= (-b1/(2*a1)); System.out.println("方程有唯一解:" + x); } else{ //Δ>0有兩個不同解 double x1= ((-b1+Math.sqrt(Math.pow(b1,2)-4*a1*c1))/(2*a1)); double x2= ((-b1-Math.sqrt(Math.pow(b1,2)-4*a1*c1))/(2*a1)); System.out.println("方程有兩個解:" + x1+"和"+x2); } } } }

結果

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述