孟加拉计算器Android工作室

时间:2017-04-28 13:33:10

标签: android

我正在尝试建立一个孟加拉语计算器。这是英文计算器的布局:

Layout of English calculator

通过编辑布局,我可以轻松地用孟加拉数字替换英文数字。但是当谈到计算时我无法做到。就像我想要它在孟加拉计算一样。例如,它将在孟加拉语中执行,如(২+২=৪)而不是(2+2=4)。我尝试过替换方法,但它没有用。

Bengali digits(০ ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯)
English digits(1 2 3 4 5 6 7 8 9)

感谢您的时间。

public class MainActivity extends AppCompatActivity {
    private TextView screen;
    private String str2, result, str, sign;
    private double a, b;
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        screen = (TextView) findViewById(R.id.textview);
        str = "";
    }

    public void onclick(View v) {
        Button button = (Button) v;
        str += button.getText().toString();
        screen.setText(str);
        a = Double.parseDouble(str);
    }
    public void onclicksign(View v) {
        Button button = (Button) v;
        sign = button.getText().toString();
        screen.setText(sign);
        str = "";
    }
    public void calculate(View v) {
        Button button = (Button) v;

        str2 = screen.getText().toString();
        b = Double.parseDouble(str2);
        if (sign.equals("+")) {
            result = a + b + "";
        } else if (sign.equals("-")) {
            result = a - b + "";
        } else if (sign.equals("*")) {
            result = a * b + "";
        } else if (sign.equals("/")) {
            result = a / b + "";
        } else {
            screen.setText("?????? ???");
        }
        {
            screen.setText(result);

        }
    }
}

2 个答案:

答案 0 :(得分:0)

您的代码尝试从按钮上的文本中提取数值。

您应该编写自定义Double解析器,将孟加拉语数字文本解析为数值。

此外,您应该编写一个方法,将数字双值转换为孟加拉语数字文本。您必须在设置屏幕文本时使用此方法。

with tf.Session(graph=prediction_graph) as session:
  # Restore the most recently checkpointed variables from training
  saver.restore(session, tf.train.latest_checkpoint(job_dir))

  # Save the SavedModel
  b = builder.SavedModelBuilder('/path/to/export')
  b.add_meta_graph_and_variables(session, ['serving_default'], signature)
  b.save()

答案 1 :(得分:0)

            @Override
            public void onClick(View view) {
                String num  = editText.getText().toString();
                //split the num

                char[] charArray = num.toCharArray();
                StringBuilder stringBuilder = new StringBuilder(charArray.length);

                // loop and convert using  switch case

                for (int i=0; i<charArray.length; i++ ){

                    char character = charArray[i];


                    switch (character){
                        case '.':
                            stringBuilder.append(".");
                            break;
                        case '0':
                            stringBuilder.append("০");
                            break;
                        case '1':
                            stringBuilder.append("১");
                            break;
                    }
                }
                //Final result..
                textView.setText(stringBuilder);

            }

尝试以上代码......

这是输出

enter image description here

注意

  • 我正在点击按钮时从EditText获取英文数字。你会 必须在你的代码中改变它。
  • 目前,switch可以处理 0 1 (十进制)。你很容易 为其他号码添加案例。
  • 请检查这个答案。 Convert String to another locale in java