PDA

View Full Version : پر کردن فضاهای خالی با خط-زیر



Sina.iRoid
پنج شنبه 09 بهمن 1393, 22:59 عصر
سلام
دوستان من می خوام نام یه فایل و تغییر بدم. طوری که اگر از فضای خالی استفاده شده، اونو به _ تبدیل کنه. برنامه رو به صورت زیر می نویسم اما درست کار نمی کنه.


String name = "Java Programming";

for (int i = 0; i < name.length(); i++) {
if (name.charAt(i) == ' ') {
name.charAt(i) = '_';
}
}

[younes]
پنج شنبه 09 بهمن 1393, 23:12 عصر
برای جایگزینی رشته ها از string.replaceFirst یا replaceAll استفاده کنید.




String name = "Java Programming";
String new_name= name.replaceAll(" ","_");

Sina.iRoid
پنج شنبه 09 بهمن 1393, 23:18 عصر
نه نمیشه.
کد زیر:


String name = "Java Programming";


for (int i = 0; i < name.length(); i++) {
if (name.charAt(i) == ' ') {
(name.charAt(i)).replace(name.charAt(i), "_");
}
}

[younes]
پنج شنبه 09 بهمن 1393, 23:23 عصر
در ضمن کد شما به این دلیل کار نمیکنه که متد replace() واقعا مقدار شی رشته شما رو تغییر نمیده و یک رشته جدید با مقدار تغییر داده شده ایجاد میکنه و برمیگردونه و باید به یک متغییر نسبت داده شود.

Sina.iRoid
پنج شنبه 09 بهمن 1393, 23:25 عصر
می دونم مشکلش چیه. چطور اینکار و انجام بدم.

[younes]
پنج شنبه 09 بهمن 1393, 23:30 عصر
تکه کد پست دوم بدون هیچ تغییری این کارو (هر کاراکتر space رو با _ جابجا میکرد)انجام میداد .

Sina.iRoid
پنج شنبه 09 بهمن 1393, 23:40 عصر
کدی و که شما بالا نوشتین اصلا اجرا نمیشه. همون اروری که اول بش اشاره کردین و میده. درضمن که من هم اجرا نشد.

[younes]
جمعه 10 بهمن 1393, 05:33 صبح
مال شما رو نیمیدونم ولی مال من باید کار کنه

خیلی سادست شما وقتی میخوای دو کاراکتر رو باهم جابجا کنید نیاز نیست این کار خودتون انجام بدید و فقط کافیه از متد های آماده کلاس string استفاده کنید.

از someString.replace(char,char) برای جابجایی دو کاراکتر استفاده کن و مقدار برگشتی رو به یک متغییر از نوع رشته نسبت بده مثل :

String name = "Java Programming";
name= name.replace(' ','_');