Det finns ett antal sätt du kan gå om att skapa en miniräknare program i Java . Denna artikel kommer att ge en miniräknare genomförande som kommer att utföra operationer när den förses med en sträng som innehåller två operatörer och en operation ( till exempel , " 2 + 2 " ) , tillsammans med en enkel huvudsakliga metod för att åstadkomma en ansökan konsol miniräknare . Dock kan detta program enkelt importeras till en Swing - eller AWT - baserat program eller något annat program där en aritmetisk uttalande måste tolkas från en sträng . Saker du behöver Review, Java
textredigerare eller Java Integrated Development Environment ( IDE )
Visa fler instruktioner
1
Skapa en ny Java- paket som kallas miniräknare . Om du väljer att göra detta med en dedikerad IDE , kommer det förmodligen att bli ett alternativ för detta i \\ " Arkiv \\ " -menyn . Annars bara skapa en mapp någonstans på din hårddisk som heter " Calculator ".
2
Skapa \\ " Calculator.java \\ " klass och skapa en klass skelett av det . Återigen , om du använder en IDE , det finns förmodligen en möjlighet att göra detta automatiskt , men om du väljer att använda en textredigerare , helt enkelt skapa en tom textfil med \\ " . Java \\ " för filändelse och skriva följande inuti :
paketet kalkylator
GO
public class Calculator {
}
3
Deklarera några variabler . Du kommer att vilja två \\ " BigDecimals \\ " ( som måste importeras från \\ " java.math \\ " paket ) för dina operander och ett heltal för drift typ samt vissa konstanter som representerar möjliga operationer . Redigera filen så att den ser ut så här :
paketet kalkylator
GO
import java.math.BigDecimal
GO
;
public class kalkylatorn {
BigDecimal operatorOne
GO
BigDecimal operatorTwo
GO
Integer operationType
GO
public final static Integer ADD = 0
GO
public final static Integer SUB = 1
GO
public final statisk Integer DIV = 2
GO
public final static Integer MULT = 3
GO
}
4
Deklarera metoder . Denna klass kommer att använda tre metoder . Fast det kan nog klara sig med bara en , med många korta , lätta - att - förstå metoder är bättre att ha färre och mer komplexa metoder . Metoderna kommer att kallas " boolean parseString ( String s ) , " " private Integer determineOperationType ( String s ) " och " BigDecimal performCalculation ( ) " .
\\ " ParseString \\ " ; metod kommer att få en sträng som representerar en aritmetisk operation - till exempel \\ " determineOperationType \\ " metoden kommer att användas av \\ " parseString \\ " för att tolka driften delen av meddelandet " 2 + 2 . " . Metoden \\ " performCalculation \\ " gör matten och returnerar svaret .
Infoga följande kod i din klass :
boolean parseString ( String s ) {
String [] operatörer = S.SPLIT ( \\ " [ ] \\ " )
GO
try {
operatorOne = ny BigDecimal ( operatörer [ 0 ] )
GO < ; br /> operatorTwo = ny BigDecimal ( operatörer [ 2 ] )
GO
operationType = determineOperationType ( operatörer [ 1 ] )
GO
return true < ; br /> GO
} catch ( NumberFormatException e ) {
System.err.println ( \\ " FEL : . Ogiltig aktör \\ " )
GO
return false
GO
} catch ( ArrayIndexOutOfBoundsException e ) {
System.err.println ( \\ " FEL : Ogiltigt antal argument : \\ " + operators.length )
GO
return false
GO
}
}
privat integer determineOperationType ( String s ) kastar NumberFormatException {
om ( s.equals ( \\ " + \\ " ) ) return ADD
GO
else if ( s.equals ( \\ " - \\ " ) ) return SUB
GO
else if ( s.equals ( \\ " /\\ " ) ) return DIV
GO
; else if ( s.equals ( \\ " * \\ " ) ) return MULT
GO
annat kasta nytt NumberFormatException ( )
GO
} < ; br />
BigDecimal performCalculation ( ) {
try {
om ( operationType == ADD ) {
tillbaka operatorOne.add ( operatorTwo )
GO
} else if ( operationType == SUB ) {
retur operatorOne.subtract ( operatorTwo )
GO
} else if ( operationType == MULT ) {
retur operatorOne.multiply ( operatorTwo )
GO
} else if ( operationType == DIV ) { < ; br /> avkastning operatorOne.divide ( operatorTwo )
GO
} else return new BigDecimal ( 0 )
GO
} catch ( ArithmeticException e ) {
System.err.println ( \\ " Arithmetic Undantag inträffade . sannolikt är detta en division med noll . \\ " )
GO
avkastning nya BigDecimal ( 0 )
GO
}
}
5
Skriv en main-metod . Detta är ett enkelt exempel för att använda din nya \\ " Calculator \\ " klass , men i praktiken kommer du förmodligen vill importera din klass som en del av ett annat mer komplicerat program . För att denna huvudsakliga metoden för att arbeta , men måste du lägga till ytterligare en import för att toppen av din klass :
import java.util.Scanner
GO
\\ " Scanner \\ " är en bekvämlighet klass för att göra det lättare att läsa data från konsolen . Lägg till följande huvudsakliga metod för att din klass :
public void main ( String [] args ) {
Calculator c = new Calculator ( )
, GO
System.out.println ( \\ " . . Ange en sträng för att representera beräkningen utförs Placera ett mellanslag mellan varje token till exempel : \\ \\ \\ " 2 + 2 \\ \\ \\ " och inte \\ \\ \\ " 2 +2 \\ \\ \\ " \\ " )
GO
Scanner scan = new Scanner ( System.in )
GO
String s = scan.nextLine ( )
GO
boolean noerror = c.parseString ( er )
GO
om ( noerror ) {
BigDecimal bd = c.performCalculation ( )
GO
System.out.println ( bd.toPlainString ( ) )
GO
}
} Addera