ورود

View Full Version : سوال: گرفتن یک کراکتر و نشان دادن آن تا z



capitan_nemesis
دوشنبه 10 خرداد 1395, 19:52 عصر
با سلام
من تو فکر یک کدی هستم کلی فکر کردم به نتیجه نرسیدم
میخوام از هر کراکتری مثلا از c مینویسیم و خودش تا z چاپ کنه
یه این شکل
c
d
e
....
z
تو کنسول به چه صورت هستش ؟؟؟؟
ممنون

محمد فدوی
سه شنبه 11 خرداد 1395, 01:15 صبح
for(char ch = 'C'; ch <= 'Z'; ch++) {
System.out.println(ch);
}

vahid-p
سه شنبه 11 خرداد 1395, 16:03 عصر
این سوال رو تو انجمن ubuntu.ir هم مطرح کرده بودی، پاسخ سوالتون رو اونجا نوشتم (http://forum.ubuntu.ir/index.php/topic,135221.msg1080606.html#msg1080606)، اینجا هم مینویسم:
به زبان جاوا:

public class Example {

public static void main(String[] args) {
if(args.length>0){
if(args[0].length()==1){
char input=args[0].charAt(0);
if(input>='a' && input<='z'){
for(char i=input;i<='z';i++){
System.out.print(i+" ");
}
}
}
}
}
}
پس از کامپایل باید به صورت زیر در محیط کنسول اجراش کنی:

java Example.class c
که c یا هر کاراکتری به عنوان آرگومان میتونی بهش بدی. فقط دقت کنید که در این کد گفتم در صورتی که فقط حروف کوچک رو قبول کنه. شما میتونید با else if یه شرط بذارید که اگر کاراکتر بزرگ بود کار مشابهی رو انجام بده.

capitan_nemesis
چهارشنبه 12 خرداد 1395, 08:51 صبح
این سوال رو تو انجمن ubuntu.ir هم مطرح کرده بودی، پاسخ سوالتون رو اونجا نوشتم (http://forum.ubuntu.ir/index.php/topic,135221.msg1080606.html#msg1080606)، اینجا هم مینویسم:
به زبان جاوا:

public class Example {

public static void main(String[] args) {
if(args.length>0){
if(args[0].length()==1){
char input=args[0].charAt(0);
if(input>='a' && input<='z'){
for(char i=input;i<='z';i++){
System.out.print(i+" ");
}
}
}
}
}
}
پس از کامپایل باید به صورت زیر در محیط کنسول اجراش کنی:

java Example.class c
که c یا هر کاراکتری به عنوان آرگومان میتونی بهش بدی. فقط دقت کنید که در این کد گفتم در صورتی که فقط حروف کوچک رو قبول کنه. شما میتونید با else if یه شرط بذارید که اگر کاراکتر بزرگ بود کار مشابهی رو انجام بده.

با سلام
ماشالا اونا هم چقدر جواب دادن ۱۰۰۰۰ رحمت به اینجا حا بماند
متغیر char رو چطوری میتونم از scanner بگیرم هر چی گشتم پیدا نکردم اینو
میخوام از کاربر بگیره یا باید با string بنویسم ؟؟

capitan_nemesis
چهارشنبه 12 خرداد 1395, 08:56 صبح
این کد غلط هستش

String i;
String j;

Scanner scn = new Scanner(System.in);

System.out.println("please enter your char:");
i = scn.next();

for (j = i; j <= 'z' ; j++)
{
System.out.println(j);
}

capitan_nemesis
چهارشنبه 12 خرداد 1395, 10:51 صبح
میگن برنامه نویسی تک نفره نمیشه با یکی از دوستانبه این رسیدیم
نظر دوستان چیه ؟؟

char ch;
char h;

for (h = '0'; h < 'z'; h++)
{
Scanner scn = new Scanner(System.in);
System.out.println("input :");
h = scn.next().charAt(0);

while (h != 'z')
{
ch = h++;
System.out.println(h);
}

s12345
چهارشنبه 12 خرداد 1395, 12:08 عصر
از کد اسکی هم میتونی استفاده کنی
از توابع تبدیل کاراکتر به کد اسکی و برعکس

vahid-p
چهارشنبه 12 خرداد 1395, 16:06 عصر
میگن برنامه نویسی تک نفره نمیشه با یکی از دوستانبه این رسیدیم
نظر دوستان چیه ؟؟

char ch;
char h;

for (h = '0'; h < 'z'; h++)
{
Scanner scn = new Scanner(System.in);
System.out.println("input :");
h = scn.next().charAt(0);

while (h != 'z')
{
ch = h++;
System.out.println(h);
}

اینو هم بد نوشتید. چند تا نکته:
1- سعی کنید بعضی شرایط رو حتما چک کنید. مثلا اینکه ممکنه رشته ای که از ورودی میگیرید طولش صفر باشه و در نتیجه charAt(0) مقدار null رو بر میگردونه
2- دو حلقه استفاده کردید که نیازی به این کار نیست.
3- از اسامی با معنی استفاده کنید تا کد خواناتر باشه. مثلا شما نوشتید ch = h++; در صورتی که ch هیچ جایی استفاده نشده و احتمالا به خاطر اینه که خودتون یادتون رفته h چی بود و ch چی!

کدی که من نوشتم برای این بود که به صورت آرگومان قبل اجرا کاراکتر رو بگیره. با کمی تغییر اگر میخواید حین اجرا کاراکتر بگیره:
String str;
Scanner cin = new Scanner(System.in);
System.out.print("Input: ");
str = cin.next();
if (str.length() > 0) {
char input = str.charAt(0);
if (input >= 'a' && input <= 'z') {
for (char i = input; i <= 'z'; i++) {
System.out.print(i + " ");
}
}
}

[younes]
چهارشنبه 12 خرداد 1395, 19:04 عصر
اینو هم بد نوشتید. چند تا نکته:
1- سعی کنید بعضی شرایط رو حتما چک کنید. مثلا اینکه ممکنه رشته ای که از ورودی میگیرید طولش صفر باشه و در نتیجه charAt(0) مقدار null رو بر میگردونه
2- دو حلقه استفاده کردید که نیازی به این کار نیست.
3- از اسامی با معنی استفاده کنید تا کد خواناتر باشه. مثلا شما نوشتید ch = h++; در صورتی که ch هیچ جایی استفاده نشده و احتمالا به خاطر اینه که خودتون یادتون رفته h چی بود و ch چی!

کدی که من نوشتم برای این بود که به صورت آرگومان قبل اجرا کاراکتر رو بگیره. با کمی تغییر اگر میخواید حین اجرا کاراکتر بگیره:
String str;
Scanner cin = new Scanner(System.in);
System.out.print("Input: ");
str = cin.next();
if (str.length() > 0) {
char input = str.charAt(0);
if (input >= 'a' && input <= 'z') {
for (char i = input; i <= 'z'; i++) {
System.out.print(i + " ");
}
}
}

شما خیلی تمیز کد میزنید. با این که سعی کردم سورس بعضی کلاس ها و پروژه های متن باز رو بخونم و یاد بگیرم ، ولی باز نمیتونم خوب کدبزنم و همیشه نیاز پیدا بوده که برگردم و دوباره کدم رو بهینه کنم . بعضی وقتا بیخودی منابعی رو هدر میدادم که اصلا نیاز نبود و بعد از بازبینی مشخص میشد....

vahid-p
پنج شنبه 13 خرداد 1395, 14:17 عصر
;2323246']شما خیلی تمیز کد میزنید. با این که سعی کردم سورس بعضی کلاس ها و پروژه های متن باز رو بخونم و یاد بگیرم ، ولی باز نمیتونم خوب کدبزنم و همیشه نیاز پیدا بوده که برگردم و دوباره کدم رو بهینه کنم . بعضی وقتا بیخودی منابعی رو هدر میدادم که اصلا نیاز نبود و بعد از بازبینی مشخص میشد....
نظر لطفتونه :خجالت:
البته اگر بهینه بودن براتون مهمه، کدی که نوشتم چندان بهینه نیست. مثلا char i در اون حلقه میتونست نباشه و با همون input میشد نوشت. ولی برای یک برنامه کوچک نیازی نیست تا این حد بهینه بودن رو در نظر گرفت و از تک تک بایت های حافظه به صورت بهینه استفاده کرد. بهینه بودن جایی خیلی لازمه که یک الگوریتم از نظر مرتبه زمانی بخوایم کاهش بدیم یا یک ساختار داده خیلی حجیم داشته باشیم.