PDA

View Full Version : سوال: حرکت بین اعضای یک رشته



X.Hijacker
سه شنبه 12 فروردین 1393, 11:36 صبح
سلام خسته نباشید

من مشکلم اینه :

فرض کنید یک رشته دارید مثلا 123456789 که داخل یک Array هست توی خونه ی اول !
مثلا :

s1[0] = 111156789

حالا این ورودی رو من دادم فرض کنید از کاربر بگیره !

حالا بخواد بین اینا جرکت کنه مثلا بشماره بگه چندتا عدد یک داخل این رشته وجود داره ؟

این کار چه جوری ممکنه ؟

ممنون میشم اگر زود جواب بدید

cups_of_java
سه شنبه 12 فروردین 1393, 12:02 عصر
یک راه:
String number = "1234,56,789";int count = 0;
for (int i = 0; i < number.length(); i++)
if (number.charAt(i) == '1')
count++; // count holds the number of ',' found

یک راه دیگه:
String number = "1234,56,789";
int commaCount = number.replaceAll("[^1]*", "").length();

X.Hijacker
سه شنبه 12 فروردین 1393, 16:45 عصر
سلام ممنون

دستتون درد نکنه خیلی عالی بود به نظرم راه دوم خیلی بهتره ! فقط یه چیزی میشه تابع replaceAll و نحوه ی استفاده اش رو بگید فهمیدما ولی دلیلی مثلا چرا داخل کروشه میزاریم و اولش کاراکتر ^ !

ممنونم

cups_of_java
سه شنبه 12 فروردین 1393, 18:13 عصر
replaceAll یک الگو میگیره و توی رشته تمام نمونه های موجود از اون الگو رو با چیزی که میخوای عوض میکنه.
روش دوم اینطوری کار می کنه که ما هر چیزی جز کاراکتر مورد نظر (فرضن کاراکتر عدد یک) رو با کاراکتر خالی عوض می کنیم. اینطوری هرچندتا بمونه یک مونده دیگه!
اما اون چیزی که شما می بینی یه الگو یا (Regular Expression یا عبارات منظم) هستش... روشون سرچ کن و بخون...

[^1]* یعنی هرچیزی جز یک
کاراکتر [] یعنی مجموعه ای از کاراکتر ها
کاراکتر ^ یعنی هر چی جز
کاراکتر * بعنی هرچندتا