C# 如何将阿拉伯数字转换为英文数字
当有人在我的条目中输入阿拉伯数字时,应用程序就会结束。 我试图限制输入仅显示英文数字或将阿拉伯数字转换为英文 我在真正的设备上尝试,但不幸的是,根本无法工作C# 如何将阿拉伯数字转换为英文数字,c#,xamarin.forms,C#,Xamarin.forms,当有人在我的条目中输入阿拉伯数字时,应用程序就会结束。 我试图限制输入仅显示英文数字或将阿拉伯数字转换为英文 我在真正的设备上尝试,但不幸的是,根本无法工作 Dictionary<string, string> numberNames; // SUM1 لتخزين النتيجة الاولة int SUM1 = 0; // SUM2 لتخزين النتيجة الثانية int SUM2 = 0; // Display
Dictionary<string, string> numberNames;
// SUM1 لتخزين النتيجة الاولة
int SUM1 = 0;
// SUM2 لتخزين النتيجة الثانية
int SUM2 = 0;
// DisplayPromptAsync تخزين حالة الاشعار
string action;
// لتبديل بين entrys
int tap = 1;
// عدد الاعبين
int playercount = 1;
int count = 0;
bool scroll = false;
public Blootrecord(bool newplay)
{
InitializeComponent();
if (newplay)
{
DisplayPrompt(lblname1, "اسم فريقهم");
DisplayPrompt(lblname2, "اسم فريقنا?");
}
else
{
// اذا مالنت الثيمة ب False هذا يعني انه يريد الرجوع لاخر لعية
// هذه اسطر لجلب اخر قيم تم تخزينها
lblname1.Text = Preferences.Get("lblname1", "");
lblname2.Text = Preferences.Get("lblname2", "");
num1.Text = Preferences.Get("num1", "");
num2.Text = Preferences.Get("num2", "");
SUM1 = Convert.ToInt32(Preferences.Get("SUM1", "0"));
SUM2 = Convert.ToInt32(Preferences.Get("SUM2", "0"));
count = Convert.ToInt32(Preferences.Get("count", "0"));
}
numberNames = new Dictionary<string, string>();
numberNames.Add("0", "۰"); //adding a key/value using the Add() method
numberNames.Add("1", "۱");
numberNames.Add("2", "۲");
numberNames.Add("3", "۳");
numberNames.Add("4", "٤");
numberNames.Add("5", "٥");
numberNames.Add("6", "٦");
numberNames.Add("7", "٧");
numberNames.Add("8", "۸");
numberNames.Add("9", "۹");
scrollView.HeightRequest = num1.HeightRequest;
}
/// <summary>
/// هذه دالة لعررض الاشعار
/// </summary>
/// <param name="label"></param>
/// /// <param name="label2"></param>
/// <param name="str"></param>
async void DisplayPrompt(Label label, string str)
{
var s = await DisplayPromptAsync("Alert", str);
if (string.IsNullOrEmpty(s))
label.Text = "فريق" + playercount++;
else
label.Text = s;
}
/// <summary>
/// زر سجل
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
///
private async void btnRegister_Clicked(object sender, EventArgs e)
{
try
{
Entnum1 = ARCH(Entnum1);
Entnum2 = ARCH(Entnum2);
scrollView.HeightRequest = num1.HeightRequest;
scroll = false;
// اضافة سط في Editors مع القيمه المدخله
num1.Text += "\n" + Entnum1.Text;
num2.Text += "\n" + Entnum2.Text;
//اذا كان الentry فارغ يبدل القيمه ب صفر
if (string.IsNullOrEmpty(Entnum1.Text))
{
num1.Text += "0";
}
if (string.IsNullOrEmpty(Entnum2.Text))
{
num2.Text += "0";
}
//تحويل القيمه الي عدد صحيح وجمعها ع اخر قميه
SUM1 += int.Parse(num1.Text.Substring(num1.Text.LastIndexOf("\n") + 1));
SUM2 += int.Parse(num2.Text.Substring(num2.Text.LastIndexOf("\n") + 1));
// اذا كانت القيمه اقل من 152 يتم اضافة سطر ثم خط ثم قيمه الجمع في كل Editor
if (SUM1 < 152 && SUM2 < 152)
{
num1.Text += "\n" + "------";
num2.Text += "\n" + "------";
num1.Text += "\n" + SUM1;
num2.Text += "\n" + SUM2;
}
else
{
// يتم عرض اكير قيمه مع اكبر فائز
if (SUM1 > SUM2)
{
action = await DisplayActionSheet(" هاردلك الفوز لهم " + SUM1 + " ", "اغلاق", "لعبة جديدة");
}
else if (SUM1 < SUM2)
{
action = await DisplayActionSheet(" مبروك الفوز لنا" + SUM2 + "", "اغلاق", "لعبة جديدة");
}
else
{
action = await DisplayActionSheet("تعادل", "اغلاق", "لعبة جديدة");
}
// اذا قمت بأختيار لعبة جديدة
if (action == "لعبة جديدة")
{
// يحذف جميع القيم ولاكن يبقي اسم العبين
num1.Text = num2.Text = "0";
Entnum1.Text = Entnum2.Text = null;
SUM1 = SUM2 = 0;
await scrollView.ScrollToAsync(num1, ScrollToPosition.Start, true);
count = 0;
scroll = true;
}
}
Entnum1.Text = Entnum2.Text = null;
// store data
// تخزين البيانات في كل مره
Preferences.Set("lblname1", lblname1.Text);
Preferences.Set("lblname2", lblname2.Text);
Preferences.Set("num1", num1.Text);
Preferences.Set("num2", num2.Text);
Preferences.Set("SUM1", SUM1.ToString());
Preferences.Set("SUM2", SUM2.ToString());
count++;
if (count >= 5 && count <= 7 && !scroll)
{
await scrollView.ScrollToAsync(num1, ScrollToPosition.Center, true);
}
else if (count > 7 && !scroll)
{
await scrollView.ScrollToAsync(num1, ScrollToPosition.End, true);
}
}
catch (Exception ex)
{
// في حالة وجود خطأ غير متوقع
await DisplayAlert("Opps!", ex.Message, "Ok");
await Navigation.PopAsync();
}
}
void btnBack_Clicked(System.Object sender, System.EventArgs e)
{
try
{
if (num1.Text != "0" && num2.Text != "0")
{
// يتم اذالة ثلاث اسطر وطرح قيمة السطر الثالث من المجموع الكلي ثم ازالة السطر الثالث
// editor number one
num1.Text = num1.Text.Remove(num1.Text.LastIndexOf("\n"));
num1.Text = num1.Text.Remove(num1.Text.LastIndexOf("\n"));
SUM1 -= int.Parse(num1.Text.Substring(num1.Text.LastIndexOf("\n") + 1));
num1.Text = num1.Text.Remove(num1.Text.LastIndexOf("\n"));
// editor number two
num2.Text = num2.Text.Remove(num2.Text.LastIndexOf("\n"));
num2.Text = num2.Text.Remove(num2.Text.LastIndexOf("\n"));
SUM2 -= int.Parse(num2.Text.Substring(num2.Text.LastIndexOf("\n") + 1));
num2.Text = num2.Text.Remove(num2.Text.LastIndexOf("\n"));
}
}
catch (Exception ex)
{
DisplayAlert("Opps!", ex.Message, "Ok");
}
}
private void Entnum1_Focused(object sender, FocusEventArgs e)
{
tap = 1;
}
private void Entnum2_Focused(object sender, FocusEventArgs e)
{
tap = 2;
}
private void Entnum2_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
// في حالة اختيار Closr
if (action == "اغلاق")
{
// حزف جميع القيم المخزنه
Preferences.Clear();
// الرجوع الي الصفحة الاولة
Navigation.PopAsync();
}
}
Entry ARCH(Entry entry)
{
for (var i = 0; i < 10; i++)
{
entry.Text = entry.Text.Replace(numberNames[i.ToString()], i.ToString());
}
return entry;
}
}
}
字典编号;
//相册
int SUM1=0;
//相册
int-SUM2=0;
//显示提示同步
弦作用;
//入口
int-tap=1;
// عدد الاعبين
int playercount=1;
整数计数=0;
bool scroll=false;
公共Blootrecord(布尔新剧)
{
初始化组件();
如果(新游戏)
{
显示提示(lblname1,“اسمفيهم”);
显示提示(lblname2,“اسمفينا?”);
}
其他的
{
//虚假
// هذه اسطر لجلب اخر قيم تم تخزينها
lblname1.Text=Preferences.Get(“lblname1”和“”);
lblname2.Text=Preferences.Get(“lblname2”和“”);
num1.Text=Preferences.Get(“num1”,即“”);
num2.Text=Preferences.Get(“num2”,即“”);
SUM1=Convert.ToInt32(Preferences.Get(“SUM1”、“0”));
SUM2=Convert.ToInt32(Preferences.Get(“SUM2”、“0”);
count=Convert.ToInt32(Preferences.Get(“count”,“0”));
}
numberNames=新字典();
Add(“0”,“۰”);//使用Add()方法添加键/值
编号名称。添加(“1”、“۱”);
编号名称。添加(“2”、“۲”);
数字名称。加上(“3”、“۳”);
数字名称。添加(“4”、“٤”);
数字名称。添加(“5”、“٥”);
编号名称。添加(“6”、“٦”);
编号名称。添加(“7”、“٧”);
数字名称。加上(“8”,“۸”);
增加(“9”、“۹”);
scrollView.HeightRequest=num1.HeightRequest;
}
///
/// هذه دالة لعررض الاشعار
///
///
/// ///
///
异步void显示提示(标签标签,字符串str)
{
var s=等待显示PromptAsync(“警报”,str);
if(string.IsNullOrEmpty)
label.Text=“فيق”+playercount++;
其他的
label.Text=s;
}
///
/// زر سجل
///
///
///
///
已单击私有异步无效BTN注册表(对象发送方,事件参数e)
{
尝试
{
Entnum1=拱(Entnum1);
Entnum2=拱(Entnum2);
scrollView.HeightRequest=num1.HeightRequest;
滚动=假;
//编辑
num1.Text+=“\n”+Entnum1.Text;
num2.Text+=“\n”+Entnum2.Text;
//入境
if(string.IsNullOrEmpty(Entnum1.Text))
{
num1.Text+=“0”;
}
if(string.IsNullOrEmpty(Entnum2.Text))
{
num2.Text+=“0”;
}
//تحويل القيمه الي عدد صحيح وجمعها ع اخر قميه
SUM1+=int.Parse(num1.Text.Substring(num1.Text.LastIndexOf(“\n”)+1));
SUM2+=int.Parse(num2.Text.Substring(num2.Text.LastIndexOf(“\n”)+1));
//在15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半编辑
if(SUM1<152&&SUM2<152)
{
num1.Text+=“\n”+“----”;
num2.Text+=“\n”+“----”;
num1.Text+=“\n”+SUM1;
num2.Text+=“\n”+SUM2;
}
其他的
{
// يتم عرض اكير قيمه مع اكبر فائز
if(SUM1>SUM2)
{
动作=等待显示动作单(“等待显示动作单”)、“等待显示动作单”、“等待显示动作单”、“等待显示动作单”);
}
else if(SUM1=5&&计数7&&!滚动)
{
等待scrollView.ScrollToAsync(num1,ScrollToPosition.End,true);
}
}
捕获(例外情况除外)
{
// في حالة وجود خطأ غير متوقع
等待显示警报(“Opps!”,例如消息“Ok”);
等待导航.PopA
private string convertArabic(string arabicNum)
{
var chArr = arabicNum.ToCharArray();
var sb = new Java.Lang.StringBuilder();
foreach (var ch in chArr)
{
if (Character.IsDigit(ch))
{
sb.Append(Character.GetNumericValue(ch));
}
else if (ch == '٫')
{
sb.Append(".");
}
else
{
sb.Append(ch);
}
}
return sb.ToString();
}