我正在尝试建立一个孟加拉语计算器。这是英文计算器的布局:
通过编辑布局,我可以轻松地用孟加拉数字替换英文数字。但是当谈到计算时我无法做到。就像我想要它在孟加拉计算一样。例如,它将在孟加拉语中执行,如(২+২=৪)
而不是(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);
}
}
}
答案 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);
}
尝试以上代码......
这是输出
注意强>
EditText
获取英文数字。你会
必须在你的代码中改变它。switch
可以处理 0 , 1 , 。 (十进制)。你很容易
为其他号码添加案例。