導航:首頁 > 編程語言 > java字元串加減

java字元串加減

發布時間:2022-05-10 17:01:31

java中怎麼將字元串(帶運算符號加減乘除)轉換成代數算式運算

這需要寫很長一段代碼。
1、判斷表達式中有沒有括弧,如果有括弧,轉第二步。沒有括弧轉第三步。
2、把括弧內的內容提取出來,作為一個新的表達式。轉第三步
3、判斷表達式中有沒有乘號和除號,有轉第四步。沒有轉第六步。
4、把乘除號和乘除號前後的數字提取出來,得到新的表達式,轉第五步。
5、提取數字和符號,判斷表達式是乘號還是除號,然後計算結果。返回。
6、表達式沒有乘除號,有加減號。轉第七步。
7、提取包含加減的表達式中的符號和數據,計算結果,返回。

就是這個道理,這里只是描述了帶括弧和加減乘除的表達式,如果有更多的運算符,則根據運算符優先順序處理。

⑵ java字元串加法問題

字元串的相加是連接,並不是計算,如果你非要相加,那這樣吧,
long l = Long.parseLong(a)+1;
a = String.valueOf(l);

⑶ java簡單加減乘除

使用BigDecimal並且一定要用String來夠造。
實現方法如下:

import java.math.BigDecimal;

/**

* 由於Java的簡單類型不能夠精確的對浮點數進行運算,這個工具類提供精

* 確的浮點數運算,包括加減乘除和四捨五入。

*/

public class Arith{

//默認除法運算精度

private static final int DEF_DIV_SCALE = 10;

//這個類不能實例化

private Arith(){

}

/**

* 提供精確的加法運算。

* @param v1 被加數

* @param v2 加數

* @return 兩個參數的和

*/

public static double add(double v1,double v2){

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.add(b2).doubleValue();

}

/**

* 提供精確的減法運算。

* @param v1 被減數

* @param v2 減數

* @return 兩個參數的差

*/

public static double sub(double v1,double v2){

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.subtract(b2).doubleValue();

}

/**

* 提供精確的乘法運算。

* @param v1 被乘數

* @param v2 乘數

* @return 兩個參數的積

*/

public static double mul(double v1,double v2){

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.multiply(b2).doubleValue();

}

/**

* 提供(相對)精確的除法運算,當發生除不盡的情況時,精確到

* 小數點以後10位,以後的數字四捨五入。

* @param v1 被除數

* @param v2 除數

* @return 兩個參數的商

*/

public static double div(double v1,double v2){

return div(v1,v2,DEF_DIV_SCALE);

}

/**

* 提供(相對)精確的除法運算。當發生除不盡的情況時,由scale參數指

* 定精度,以後的數字四捨五入。

* @param v1 被除數

* @param v2 除數

* @param scale 表示表示需要精確到小數點以後幾位。

* @return 兩個參數的商

*/

public static double div(double v1,double v2,int scale){

if(scale<0){

throw new IllegalArgumentException(

"The scale must be a positive integer or zero");

}

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();

}

/**

* 提供精確的小數位四捨五入處理。

* @param v 需要四捨五入的數字

* @param scale 小數點後保留幾位

* @return 四捨五入後的結果

*/

public static double round(double v,int scale){

if(scale<0){

throw new IllegalArgumentException(

"The scale must be a positive integer or zero");

}

BigDecimal b = new BigDecimal(Double.toString(v));

BigDecimal one = new BigDecimal("1");

return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();

}

};
分享
本回答由電腦網路分類達人 高德寶認證
其他類似問題
2009-02-08加減乘除運算(Java)14
2010-06-22Java實現有界面的簡單的兩個整數之間的加減乘除運算
2009-09-21myeclipse中java的加減乘除運算1
2011-05-27用java編寫計算器,,,要求加減乘除等運算。。。1
2011-09-15java中的String型怎麼實現數學的加減乘除運算?10
更多關於java簡單加減乘除的問題>>
為您推薦:

舉報| 2009-02-24 03:00
#為什麼很多走失的孩子無法找回?#
提問者採納
import java.util.Scanner;

class MakeOperation
{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
Count count=new Count();
System.out.print("請輸入你要運算的第一個數:");
count.one=input.next();
System.out.print("請輸入你要進行運算的運算符:");
count.fu=input.next();
System.out.print("請輸入你要運算的第二個數:");
count.two=input.next();
if(count.fu.equals("+")){
count.outcome=Float.parseFloat(count.one)+Float.parseFloat(count.two)+"";
// 將字元串解析為數字,注意下如果輸入的不是數字程序會報錯,缺少健壯性代碼 }
System.out.println(count);
}

}
class Count{
String one;
String two;
String fu;
String outcome; // 結果
public String toString(){
return one+fu+two+"="+outcome;
}
}

下面的代碼修改了Count類里域的部分參數,增加了一個用於檢查輸入是否正確的類。

import java.util.Scanner;

class MakeOperation
{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
Count count=new Count();
CheckOperation checkOpera=new CheckOperation();
System.out.print("請輸入你要運算的第一個數:");
count.one=checkOpera.checkNum(input);
System.out.print("請輸入你要進行運算的運算符:");
String[] operators={"+","-","*","/"};
count.fu=checkOpera.checkOperator(input,operators);
System.out.print("請輸入你要運算的第二個數:");
count.two=checkOpera.checkNum(input);
if("+".equals(count.fu)){
count.outcome=count.one+count.two;
System.out.println(count);
}
}
}
class Count{
float one;
float two;
String fu;
float outcome; // 結果

public String toString(){
return one+fu+two+"="+outcome;
}
}
class CheckOperation{

/*驗證數字,輸錯了會提示用戶重新輸入*/
public float checkNum(Scanner input){
float num=0f;
try {
num=Float.parseFloat(input.next());
} catch (NumberFormatException e) {
System.out.print("請輸入正確的數字: ");
num=checkNum(input); //直至獲取到正確的值
}
return num;
}
/*驗證輸入的符號是否正確*/
public String checkOperator(Scanner input,String[] operators){
String opera=null;
boolean judge=true;
opera=input.next();
for(String operator:operators){
if(operator.equals(opera)) judge=false;
}
if(judge) {
System.out.print("請輸入正確的運算符: ");
opera=checkOperator(input,operators);
}
return opera;
}
}

⑷ 怎麼用JAVA做加減混合運算

import java.util.Scanner;

public class HybridOperation {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);
System.out.println("輸入一個表達式:");
String s = input.nextLine().trim();
int n = s.length();

int sum = 0;
int p = -1;
char a = '+';

for (int i = 1; i < n; i++) {
char ch = s.charAt(i);
if (ch == '+' || ch == '-') {
if (a == '+') {
sum += Integer.parseInt(s.substring(p + 1, i));
a = ch;
p = i;
} else if (a == '-') {
sum -= Integer.parseInt(s.substring(p + 1, i));
a = ch;
p = i;
}
}
}
if (a == '+') {
sum += Integer.parseInt(s.substring(p + 1));
}
if (a == '-') {
sum -= Integer.parseInt(s.substring(p + 1));
}
System.out.println(s+" = "+sum);
}

}

可以實現任意次數的加減,
如:1+2+3-2

⑸ java數字加減編譯後是結果嗎

是的。使用+符號來計算最後的結果。具體代碼如下:publicclassDemo{publicstaticvoidmain(String[]args){intx=3;inty=4;intresult=x+y;System.out.println(result);}}其中需要注意的是代碼需寫在主方法(main方法)中,否則程序無法運行;還有int型變數的初始值是0,即如果不給int型變數賦值的話,默認這個變數的值為0。

⑹ java中如何實現字元與數字加減運算

+等運算符執行前都會將兩邊轉化為相同數據類型,都是低->高。char與int相加時,char會轉化為int,所以'1'+1是50,++不完全等於+1,這個操作符只有一個操作數,char不需要轉化所以仍是字元類型。system.out.print只負責輸出結果

⑺ 為什麼說java的String相加減效率低

你好,java中的String類創建的字元串是不可變字元串。
也就是說不能改變字元串的值。
當你在對字元串相加減時會生成新的String對象。
所以效率低。建議使用StringBuilder。

如果滿意,請採納,謝謝。

⑻ java中如何進行減法運算

setText(""+number1-number2);
因為java是從左到右處理的,在減法運算前有""字元串處理, java就會把之後的都當做字元串處理.改成
setText(""+(number1-number2));

如果減法運算在前面,比如 number1-number2 + "".這樣是可以的

閱讀全文

與java字元串加減相關的資料

熱點內容
管家婆輝煌2加密狗挪到另一台電腦 瀏覽:760
摩托車在哪裡app看考題 瀏覽:356
蘋果5app在哪裡設置 瀏覽:737
如何查看伺服器的磁碟使用 瀏覽:165
python蒙特卡洛模型投點圖 瀏覽:330
安卓手機屬於什麼介面 瀏覽:742
微信群推廣網站源碼 瀏覽:764
九江離鷹潭源碼 瀏覽:719
python可以當作函數的返回值 瀏覽:422
地鐵逃生體驗服怎麼進入安卓 瀏覽:833
齊魯工惠app的中獎記錄在哪裡 瀏覽:759
linuxkill命令詳解 瀏覽:103
dhcp伺服器動態分配地址 瀏覽:265
門禁卡加密了能破解嗎 瀏覽:215
在哪裡下載百度網盤app 瀏覽:917
伺服器要升級什麼意思 瀏覽:831
銀行還房貸解壓方法 瀏覽:702
伺服器主機辦公如何提速 瀏覽:920
cad列印為pdf 瀏覽:418
賣手錶的app哪裡可以賣 瀏覽:55