0

我正在尝试进行计算,但是 TextViewstIncomeNum和 1tExpenseNum1 中有一个 £。有什么办法可以去掉这个£符号吗?

public class Balance extends Activity 
{
    public static final String PREFS_INCOME = "IncomePreferenceFile";
    public static final String PREFS_EXPENSE = "ExpensePreferenceFile";

    double balance, income, expense;
    Button cal, options;
    TextView tBalance, tBalanceNum, tIncome, tIncomeNum, tExpense, tExpenseNum;
    String sIncome, sExpense;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        initializeVariables();

        SharedPreferences sharedIncome = getSharedPreferences(PREFS_INCOME, 0);
        tIncomeNum.setText(sharedIncome.getString("TotalInNum", "£0"));

        SharedPreferences sharedExpense = getSharedPreferences(PREFS_EXPENSE, 0);
        tExpenseNum.setText(sharedExpense.getString("TotalExNum", "£0"));

        cal.setOnClickListener(new View.OnClickListener()
        {

            public void onClick(View v) 
            {   
                convertToString();
                convertToDouble();
                balance = income - expense;
                DecimalFormat currency = new DecimalFormat("0.00");
                tBalanceNum.setText("£" + currency.format(balance));
                if(balance > 0)
                {
                    tBalanceNum.setTextColor(Color.GREEN);
                }
                else if(balance < 0)
                {
                    tBalanceNum.setTextColor(Color.RED);
                }
                else if(balance == 0)
                {
                    tBalanceNum.setTextColor(Color.BLACK);
                }
            }
        });

        options.setOnClickListener(new View.OnClickListener() 
        {

            @Override
            public void onClick(View v) 
            {
                // TODO Auto-generated method stub
                Intent openMenu = new Intent("com.studentbudget.COPYOFMENU");
                startActivity(openMenu);
                finish();
            }
        });
    }

    private void initializeVariables() {
        // TODO Auto-generated method stub
        cal = (Button) findViewById(R.id.bCal);
        options = (Button) findViewById(R.id.bOptions);
        tBalance = (TextView) findViewById(R.id.tvBalance);
        tBalanceNum = (TextView) findViewById(R.id.tvBalanceNum);
        tIncome = (TextView) findViewById(R.id.tvIncome);
        tIncomeNum = (TextView)findViewById(R.id.tvIncomeNum);
        tExpense = (TextView) findViewById(R.id.tvExpense);
        tExpenseNum = (TextView) findViewById(R.id.tvExpenseNum);

    }

    private void convertToString() {
        // TODO Auto-generated method stub
        sIncome = tIncomeNum.getText().toString();
        sExpense = tExpenseNum.getText().toString();
    }

    private void convertToDouble() {
        // TODO Auto-generated method stub
        income = Double.parseDouble(sIncome);
        expense = Double.parseDouble(sExpense);
    }
}

我的计算如下。

inTotal = inLoan + inWage + inGrant + inOther;
DecimalFormat currency = new DecimalFormat(".00");
TotalInNum.setText("£" + currency.format(inTotal));
4

2 回答 2

0

可能不是解决此问题的最佳方法,但如果您只想从字符串中删除“£”,则可以使用它

String stringVar = "£10.00";
stringVar = stringVar.replace("£", "");     //Replaces all '£' occurrences with ''
于 2013-06-07T21:28:34.900 回答
0

如果您的符号在第一个位置,那么您可以使用substring()如下

说你的 textview 的文本存储在字符串中variable s,所以现在要删除第一个字符的使用

s.substring(1);

现在,如果您想将其转换为 double 并将其用于计算,您可以使用

double value = Double.parseDouble(s.substring(1));

于 2013-06-07T21:35:56.213 回答