Der er en række måder , du kan gå om at skabe en lommeregner program i Java. Denne artikel vil give en regnemaskine implementering , der skal udføre operationer, når forsynet med en streng, der indeholder to operatører og en operation ( for eksempel " 2 + 2" ), sammen med en enkel vigtigste metode til at give en konsol lommeregner ansøgning. Dog kan dette program let importeres til en Swing - eller AWT -baseret program eller enhver anden anvendelse , hvor en matematisk redegørelse skal tolkes ud fra en streng. Ting du skal
Java
Text editor eller Java Integrated Development Environment (IDE)
Vis Flere Instruktioner
1
Opret en ny Java pakke kaldet regnemaskine . Hvis du vælger at gøre dette med en dedikeret IDE , vil der sandsynligvis være en mulighed for dette i \\ "File \\ " menuen. Ellers bare oprette en mappe et sted på din harddisk kaldet " Calculator ".
2
Opret \\ " Calculator.java \\ " klasse og oprette en klasse skelet af det. Igen, hvis du bruger en IDE , er der sandsynligvis en mulighed for at gøre dette automatisk , men hvis du vælger at bruge en tekst editor , skal du blot oprette en tom almindelig tekstfil med \\ " . Java \\" for filtypen og skrive følgende inde i det :
pakke regnemaskine
GO
public class Calculator {
}
3
Erklær nogle variabler . Du vil to \\ " BigDecimals \\ " (som skal importeres fra \\ " java.math \\ " pakke ) til dine operander og en Integer til driften type samt nogle konstanter til at repræsentere de mulige operationer . Rediger dine fil, så det ser sådan ud:
pakke regnemaskine
GO
import java.math.BigDecimal
GO
;
public class Calculator {
BigDecimal operatorOne
GO
BigDecimal operatorTwo
GO
Integer operationType
GO
offentlig endeligt statisk Integer ADD = 0
GO
offentlige endelige statiske Integer SUB = 1
GO
offentlig afsluttende statisk Integer DIV = 2
GO
offentlig endeligt statisk Integer MULT = 3
GO
}
4
Erklær metoder. Denne klasse vil bruge tre metoder. Selv om det formentlig kan komme af med én , der har mange korte , let at forstå metoder er bedre at have færre , mere komplekse metoder. Metoderne vil blive kaldt " boolean parseString (String s ) ", " private Integer determineOperationType (String s ) " og " BigDecimal performCalculation ()" .
\\ " ParseString \\ " , metode vil modtage en streng, der repræsenterer en aritmetisk operation - for eksempel \\ " determineOperationType \\ "-metoden vil blive brugt af \\ " parseString \\ " til at fortolke driften del af oversigten "2 + 2". . Metoden \\ " performCalculation \\ " gør matematik og returnerer svaret.
Indsæt følgende kode i din klasse :
boolean parseString (String s ) {
String [] operatører = S.SPLIT ( \\ " [ ] \\ " )
GO
try {
operatorOne = new BigDecimal ( operatører [0] )
GO < ; br /> operatorTwo = new BigDecimal ( operatører ) [2]
GO
operationType = determineOperationType (operatører ) [1]
GO
tilbagevenden true < ; br /> GO
} catch ( NumberFormatException e ) {
System.out.println ( \\ "FEJL : . Ugyldig operatør \\ " )
GO < br /> return false
GO
} catch ( ArrayIndexOutOfBoundsException e ) {
System.out.println ( \\ "FEJL : Ugyldigt antal argumenter : \\ " + operators.length )
GO
return false
GO
}
}
private integer determineOperationType (String s ) kaster NumberFormatException {
if ( s.equals ( \\ "+ \\ " ) ) returnerer ADD
GO
else if ( s.equals ( \\ "- \\ " ) ) return SUB
GO
else if ( s.equals ( \\ " /\\ " ) ) return DIV
GO
; else if ( s.equals ( \\ " * \\ " ) ) return MULT
GO
ellers smide nyt NumberFormatException ()
GO
} < ; br />
BigDecimal performCalculation () {
try {
if ( operationType == ADD ) {
tilbage operatorOne.add ( operatorTwo )
GO
} else if ( operationType == SUB ) {
tilbagevenden operatorOne.subtract ( operatorTwo )
GO < br />} else if ( operationType == MULT ) {
tilbagevenden operatorOne.multiply ( operatorTwo )
GO
} else if ( operationType == DIV ) { < ; br /> retur operatorOne.divide ( operatorTwo )
GO
} else returnere nye BigDecimal (0)
GO
} catch ( ArithmeticException e ) {
System.out.println ( \\ " Arithmetic Exception opstod. Mest sandsynligt dette er en division med nul . \\ " )
GO
tilbagevenden nye BigDecimal (0 )
GO
}
}
5
Skriv en main metode. Dette er et simpelt eksempel program til at bruge din nye \\ " Calculator \\ " klasse, men i praksis vil du sandsynligvis ønsker at importere din klasse som en del af et andet mere komplekst program . For at dette vigtigste metode til at arbejde , dog vil du nødt til at tilføje endnu en import erklæring til toppen af din klasse:
import java.util.Scanner
GO
\\ " Scanner \\ " er en bekvemmelighed klasse designet til at gøre det nemmere at læse data fra konsollen. Tilføj følgende vigtigste metode til din klasse :
offentlige static void main ( String [] args ) {
Lommeregner c = new Calculator ()
; GO
System.out.println ( \\ " . . Indtast en streng til at repræsentere beregningen udføres Placer et mellemrum mellem hvert token for eksempel: \\ \\ \\ " 2 + 2 \\ \\ \\ ", og ikke \\ \\ \\ "2 +2 \\ \\ \\ " \\ " )
GO
Scanner scan = new Scanner ( System.in )
GO < br /> String s = scan.nextLine ()
GO
boolean noerror = c.parseString (r)
GO
hvis ( noerror ) {
BigDecimal bd = c.performCalculation ()
GO
System.out.println ( bd.toPlainString () )
GO < br />}
}