PDA

View Full Version : جدا کردن عدد از رشته!



saeedsfm
دوشنبه 25 آبان 1394, 12:17 عصر
سلام دوستان مثلا یک رشته دلخواه داریم مثلا "String a = "asas125 اگه بخوایم عدد 125 رو ازین رشته جدا کنیم بریزیم تو یه متغیر دیگه از چه دستور و تابعی باید استفاده کنیم (استفاده از دستورات جاوا داخل یک اکتیویتی اندروید)

reza_web
دوشنبه 25 آبان 1394, 13:01 عصر
توضيحاتت خيلي كمه
آيا هميشه فرمت رشته يه همين شكله؟ (4 حرف و بعد اعداد؟؟)
شايد بهترين راه استفاده از توابع رشته اي مانند split باشه

msroid
دوشنبه 25 آبان 1394, 14:55 عصر
اینجوری میتونی اینکارو بکنی:


String s = "f52s3d51d5g15s321";
String number = s.replaceAll("[^0-9]", "");
int i = Integer.valueOf(number);

Log.i("LOG", "the value of i is: " + i); // output will be ----> the value of i is 523515321


در واقع با استفاده از یک عبارت منظم به تابع replaceAll گفتیم که جای همه کاراکترهای غیر عددی در رشته s هیچی بذاره و در نهایت مقداری که خواهد موند فقط اعداد هستند.

msroid
دوشنبه 25 آبان 1394, 15:10 عصر
راستی یادت نره که int محدودیت داره و هر تعدادی نمیتونه باشه...!!

از این تابه به دو صورت دیگه هم میشه استفاده کرد که شاید بد نباشه بهش اشاره کنم:

اول به صورت کاراکتری: یعنی یه کاراکتر رو مشخص میکنی و میگی با یه کاراکتر دیگه توی متن عوض بشه.
دوم به صورت دنباله ای از کاراکتر ها: به این صورت که مثلا یه کلمه رو مشخص میکنی و میگی با یه کلمه دیگه جایگزین بشه

مثال:




//Single Characters
String str1 = "Today i am so happy because i have been invited to a party";
String s1 = str.replaceAll("i", "I");
Log.i("LOG", "s1 is: " + s1); // s1 is: Today I am so happy because I have been invited to a party


// Character Sequence
String str2 = "My name is Majid";
String s2 = str.replaceAll("Majid", "Bahar");
Log.i("LOG", "s2 is: " + s2); // s2 is: My name is Bahar