چگونه در جاوا کاراکتر تصادفی بین کاراکترهای a تا z تولید کنیم؟
پاسخ:
package start1397;
import java.util.Random;
public class Test4 {
public static void main(String[] args) {
Random rnd = new Random();
char c = (char) (rnd.nextInt(26) + 'a');
System.out.println(c);
}
}
با تست برنامه بالا هر بار برای شما یک کاراکتر انگلیسی تصادفی تولید می شود، برای مثال بعد اجرای کد جاوای بالا کاراکتر زیر به صورت تصادفی تولید شده است:
Output:
i
@this_java
پاسخ:
package start1397;
import java.util.Random;
public class Test4 {
public static void main(String[] args) {
Random rnd = new Random();
char c = (char) (rnd.nextInt(26) + 'a');
System.out.println(c);
}
}
با تست برنامه بالا هر بار برای شما یک کاراکتر انگلیسی تصادفی تولید می شود، برای مثال بعد اجرای کد جاوای بالا کاراکتر زیر به صورت تصادفی تولید شده است:
Output:
i
@this_java
پاک کردن عناصر درون HashSet :
void clear
برای پاک کردن تمامی عناصر HashSet استفاده میشود
public class Connect
{
public static void main (String[] args)
{
HashSet<String> ssm = new HashSet<String😠);
ssm.add("PArss");
System.out.println("Befor Clear : "+ssm);
ssm.clear();
System.out.println("After Clear : "+ssm);
}
}
Out Put:
Befor Clear : [PArss]
After Clear : []
@this_java
void clear
برای پاک کردن تمامی عناصر HashSet استفاده میشود
public class Connect
{
public static void main (String[] args)
{
HashSet<String> ssm = new HashSet<String😠);
ssm.add("PArss");
System.out.println("Befor Clear : "+ssm);
ssm.clear();
System.out.println("After Clear : "+ssm);
}
}
Out Put:
Befor Clear : [PArss]
After Clear : []
@this_java
چک کردن موجود بودن یک عنصر در HashSet
boolean contains(object)
اگر عنصر وجود داشت مقدار true را بر میگرداند
در غیر این صورت مقدار برگشتی false خواهد بود
به مثال زیر توجه کنید :
public class Connect
{
public static void main (String[] args)
{
HashSet<String> ssm = new HashSet<String😠);
ssm.add("PArss");
ssm.contains("parsa");
System.out.println(ssm);
System.out.println(ssm.contains("parsa"));
}
}
OUTPUT :
[PArss]
false
@this_java
boolean contains(object)
اگر عنصر وجود داشت مقدار true را بر میگرداند
در غیر این صورت مقدار برگشتی false خواهد بود
به مثال زیر توجه کنید :
public class Connect
{
public static void main (String[] args)
{
HashSet<String> ssm = new HashSet<String😠);
ssm.add("PArss");
ssm.contains("parsa");
System.out.println(ssm);
System.out.println(ssm.contains("parsa"));
}
}
OUTPUT :
[PArss]
false
@this_java
craps.java
1.4 KB
مبحث اموزشی : بازی شانس ; معرفی enum
یکی از بازی های مورد علاقه در بسیاری از نقاط جهان craps نام دارد که با طاس انجام میشود....
یکی از بازی های مورد علاقه در بسیاری از نقاط جهان craps نام دارد که با طاس انجام میشود....
محاسبه ی فاکتوریل در جاوا :
import java.util.Scanner;
public class Factorial {
public static void main(String[] args) {
int n, fact = 1;
Scanner input = new Scanner(System.in);
System.out.println("Enter Number Of N:");
n = input.nextInt();
for (int i = 1; i <= n; i++) {
fact = fact * i;
}
System.out.println("Factorial(" + " " + n + " ) " + "is " + fact);
}
}
import java.util.Scanner;
public class Factorial {
public static void main(String[] args) {
int n, fact = 1;
Scanner input = new Scanner(System.in);
System.out.println("Enter Number Of N:");
n = input.nextInt();
for (int i = 1; i <= n; i++) {
fact = fact * i;
}
System.out.println("Factorial(" + " " + n + " ) " + "is " + fact);
}
}
محاسبه ی فاکتوریل در جاوا : با استثنای فاکتوریل منفی
public class Factorial {
public static void main(String[] args) {
int i;
Scanner in = new Scanner(System.in);
System.out.println("Please Enter N : ");
i = in.nextInt();
Factorial m = new Factorial();
if(i <0) {
System.out.println("na");
} else if (i == 0){
System.out.println("1");
} else {
m.Fact(i);
}
}
public void Fact(int i) {
int b = 1;
for (int ms = 1; ms<=i; ms++)
b = b *ms;
System.out.println(b);
}
}
public class Factorial {
public static void main(String[] args) {
int i;
Scanner in = new Scanner(System.in);
System.out.println("Please Enter N : ");
i = in.nextInt();
Factorial m = new Factorial();
if(i <0) {
System.out.println("na");
} else if (i == 0){
System.out.println("1");
} else {
m.Fact(i);
}
}
public void Fact(int i) {
int b = 1;
for (int ms = 1; ms<=i; ms++)
b = b *ms;
System.out.println(b);
}
}
بدست اوردن عناصر ارایه به همراه شماره ی خونه ی قرار گیری انها:
package learn;
/
*
* @author Parsa
*/
public class Learn {
/
* @param args the command line arguments
*/
public static void main(String[] args) {
final int Array_SIZE= 10;
int[] Array = new int[Array_SIZE];
for(int i = 0; i< Array.length; i++)
Array[i] = 2+2 *i;
System.out.println("Index"+"\t"+"Value");
for(int i= 0; i<Array.length; i++)
System.out.println(i+"\t" +Array[i]);
}
}
خروجی :
Index Value
0 2
1 4
2 6
3 8
4 10
5 12
6 14
7 16
8 18
9 20
package learn;
/
*
* @author Parsa
*/
public class Learn {
/
* @param args the command line arguments
*/
public static void main(String[] args) {
final int Array_SIZE= 10;
int[] Array = new int[Array_SIZE];
for(int i = 0; i< Array.length; i++)
Array[i] = 2+2 *i;
System.out.println("Index"+"\t"+"Value");
for(int i= 0; i<Array.length; i++)
System.out.println(i+"\t" +Array[i]);
}
}
خروجی :
Index Value
0 2
1 4
2 6
3 8
4 10
5 12
6 14
7 16
8 18
9 20
نمایش گرافیکی داده های ارایه با نمودار میله ای :
package learn;
/
*
* @author Parsa
*/
public class Learn {
/
* @param args the command line arguments
*/
public static void main(String[] args) {
int Array[] = {0,0,0,0,0,1,3,5,6,1,10};
System.out.println("Grade Distribution : ");
for(int counter = 0; counter< Array.length; counter ++) {
if(counter == 10)
System.out.printf("%5d: ",100);
else
System.out.printf("%02d-%02d: ", counter *10, counter *10+9);
for(int stars =0; stars<Array[counter]; stars++)
System.out.print("*");
System.out.println();
}
}
}
خروجی :
00-09:
10-19:
20-29:
30-39:
40-49:
50-59: *
60-69: ***
70-79: *****
80-89: ******
90-99: *
100: **********
@this_java
package learn;
/
*
* @author Parsa
*/
public class Learn {
/
* @param args the command line arguments
*/
public static void main(String[] args) {
int Array[] = {0,0,0,0,0,1,3,5,6,1,10};
System.out.println("Grade Distribution : ");
for(int counter = 0; counter< Array.length; counter ++) {
if(counter == 10)
System.out.printf("%5d: ",100);
else
System.out.printf("%02d-%02d: ", counter *10, counter *10+9);
for(int stars =0; stars<Array[counter]; stars++)
System.out.print("*");
System.out.println();
}
}
}
خروجی :
00-09:
10-19:
20-29:
30-39:
40-49:
50-59: *
60-69: ***
70-79: *****
80-89: ******
90-99: *
100: **********
@this_java
استفاده از عناصر ارایه بعنوان شمارنده :
public class Learn {
public static void main(String[] args) {
Random is = new Random();
int[] fer = new int[7];
for (int i = 1; i <= 6000000; i++) {
++fer[1 + is.nextInt(6)];
}
System.out.println("Face" + "\t" + "Ferquency[face]");
for (int face = 1; face < fer.length; face++) {
System.out.println(face + "\t" + fer[face]);
}
}
}
public class Learn {
public static void main(String[] args) {
Random is = new Random();
int[] fer = new int[7];
for (int i = 1; i <= 6000000; i++) {
++fer[1 + is.nextInt(6)];
}
System.out.println("Face" + "\t" + "Ferquency[face]");
for (int face = 1; face < fer.length; face++) {
System.out.println(face + "\t" + fer[face]);
}
}
}
استفاده از ارایه ها برای تحلیل نتایج:
به مثال زیر توجه کنید :
از بیست دانشجو در مورد کیفیت غذای عرضه شده در رستوران دانشگاه سوال شده و پاسخ دانشجویان میتواند در محدوده ی 1 تا 10 قرار داشته باشد. به اینصورت که 1 نشانده ی کیفیت پایین و ده کیفیت بالاست... پاسخ دانشجویان را در یک ارایه قرار داده و میزان و تعداد پاسخ های همسان را مشخص سازرید
راه حل:
public class Learn {
public static void main(String[] args) {
int[] i = {1,2,5,4,3,5,2,1,3,3,1,4,3,3,3,2,3,3,2,14};
int[] ferquency = new int [6];
for(int answer = 0; answer<i.length;answer++) {
try{
++ferquency[i[answer]];
} catch (ArrayIndexOutOfBoundsException e) {
System.err.println(e);
System.out.printf("Responses [%d]= %d%n%n",answer,i[answer]);
}
}
System.out.println("Rating"+"\t"+"Ferquency");
for(int rating = 1; rating<ferquency.length;rating++) {
System.out.println(rating+"\t"+ferquency[rating]);
}
}
}
خروجی :
java.lang.ArrayIndexOutOfBoundsException: 14
Responses [19]= 14
Rating Ferquency
1 3
2 4
3 8
4 2
5 2
@this_java
به مثال زیر توجه کنید :
از بیست دانشجو در مورد کیفیت غذای عرضه شده در رستوران دانشگاه سوال شده و پاسخ دانشجویان میتواند در محدوده ی 1 تا 10 قرار داشته باشد. به اینصورت که 1 نشانده ی کیفیت پایین و ده کیفیت بالاست... پاسخ دانشجویان را در یک ارایه قرار داده و میزان و تعداد پاسخ های همسان را مشخص سازرید
راه حل:
public class Learn {
public static void main(String[] args) {
int[] i = {1,2,5,4,3,5,2,1,3,3,1,4,3,3,3,2,3,3,2,14};
int[] ferquency = new int [6];
for(int answer = 0; answer<i.length;answer++) {
try{
++ferquency[i[answer]];
} catch (ArrayIndexOutOfBoundsException e) {
System.err.println(e);
System.out.printf("Responses [%d]= %d%n%n",answer,i[answer]);
}
}
System.out.println("Rating"+"\t"+"Ferquency");
for(int rating = 1; rating<ferquency.length;rating++) {
System.out.println(rating+"\t"+ferquency[rating]);
}
}
}
خروجی :
java.lang.ArrayIndexOutOfBoundsException: 14
Responses [19]= 14
Rating Ferquency
1 3
2 4
3 8
4 2
5 2
@this_java
چاپ تمامی عناصر ارایه ی دو بعدی:
package learn;
public class Learn {
public static void main(String[] args) {
//row equals sart
//columns means soton
int[][] Array = {{2, 2, 3, 4}, {3, 4, 2, 1}};
int[][] parsa = {{1, 2}, {3}, {4, 5, 6}};
System.out.println("Array: ");
output(Array);
System.out.println("Parsa: ");
output(parsa);
}
static void output(int[][] k) {
for (int counrer = 0; counrer < k.length; counrer++) {
for (int c = 0; c < k[counrer].length; c++) {
System.out.println(k[counrer][c]);
}
}
}
}
@this_java
package learn;
public class Learn {
public static void main(String[] args) {
//row equals sart
//columns means soton
int[][] Array = {{2, 2, 3, 4}, {3, 4, 2, 1}};
int[][] parsa = {{1, 2}, {3}, {4, 5, 6}};
System.out.println("Array: ");
output(Array);
System.out.println("Parsa: ");
output(parsa);
}
static void output(int[][] k) {
for (int counrer = 0; counrer < k.length; counrer++) {
for (int c = 0; c < k[counrer].length; c++) {
System.out.println(k[counrer][c]);
}
}
}
}
@this_java
مثال کاربردی از متد split() در جاوا
مثال جاری تمامی کلمات موجود در آبجکت s1 را که بر اساس فاصله (space) از هم جدا شده اند، برمی گرداند.
public class SplitExample{
public static void main(String args[]){
String s1="java string split method by javatpoint";
String[] words=s1.split("\\s");//splits the string based on whitespace
//using java foreach loop to print elements of string array
for(String w:words){
System.out.println(w);
}
}}
خروجی:
java
string
split
method
by
javatpoint
@this_java
مثال جاری تمامی کلمات موجود در آبجکت s1 را که بر اساس فاصله (space) از هم جدا شده اند، برمی گرداند.
public class SplitExample{
public static void main(String args[]){
String s1="java string split method by javatpoint";
String[] words=s1.split("\\s");//splits the string based on whitespace
//using java foreach loop to print elements of string array
for(String w:words){
System.out.println(w);
}
}}
خروجی:
java
string
split
method
by
javatpoint
@this_java
متد های get و set در مقابل داده public
بنظر میرسد که تدارک دیدن قابلیت های set و get به میزان ایجاد متغیر های نمونه ی پابلیک از اهمیت برخوردار است. این قابلیت یکی از نکات جالب توجه زبان جاوا در زمینه ی مهندسی هنرم افزار است...یک متغیر نمونه public میتواند توسط هر متدی که دارای یک مراجعه به یک شی است که حاوی متغیر نمونه باشد , خوانده یا نوشته شود...اگر متغیر بصورت privatrr اعلان شده باشد یک متد public get بطور مشخص به سایر متد ها اجازه ی دسترسی به متغیر را میدهد , اما متد get تنها میتواند در نحوه ی دسترسی کلاینت به متغیر کنترل داشته باشید..
برای مثال امکان دارد یک متد get بر فرمت برگشتی کنترل داشته باشد از اینرو همانند یک حفاظ در مقابل کد کلاینت در دسترسی به داده واقعی عمل میکند.
یک متد public set میتواند و باید به دقت مبادرت به تغییر مقدار متغیر کند تا مطمعن گردد مقدار جدید برای ان ایتم مناسب است..
برای مثال اقدام به set روز ماه 37 پذیرفته نیست.. یا تنظیم وزن یک نفر به مقدار منفی و الی اخر.. بنابراین اگرچه متد های set و get دسترسی به داده های private را فراهم می اورند ... اما این دسترسی توسط برنامه نویس به هنگام پیاده سازی متد ها با محدودیت همراه میشود
@this_java
بنظر میرسد که تدارک دیدن قابلیت های set و get به میزان ایجاد متغیر های نمونه ی پابلیک از اهمیت برخوردار است. این قابلیت یکی از نکات جالب توجه زبان جاوا در زمینه ی مهندسی هنرم افزار است...یک متغیر نمونه public میتواند توسط هر متدی که دارای یک مراجعه به یک شی است که حاوی متغیر نمونه باشد , خوانده یا نوشته شود...اگر متغیر بصورت privatrr اعلان شده باشد یک متد public get بطور مشخص به سایر متد ها اجازه ی دسترسی به متغیر را میدهد , اما متد get تنها میتواند در نحوه ی دسترسی کلاینت به متغیر کنترل داشته باشید..
برای مثال امکان دارد یک متد get بر فرمت برگشتی کنترل داشته باشد از اینرو همانند یک حفاظ در مقابل کد کلاینت در دسترسی به داده واقعی عمل میکند.
یک متد public set میتواند و باید به دقت مبادرت به تغییر مقدار متغیر کند تا مطمعن گردد مقدار جدید برای ان ایتم مناسب است..
برای مثال اقدام به set روز ماه 37 پذیرفته نیست.. یا تنظیم وزن یک نفر به مقدار منفی و الی اخر.. بنابراین اگرچه متد های set و get دسترسی به داده های private را فراهم می اورند ... اما این دسترسی توسط برنامه نویس به هنگام پیاده سازی متد ها با محدودیت همراه میشود
@this_java
کپسوله سازی(Encapsulation)
کپسوله سازی قابلیتی برای حفظ و پنهان کردن اشیای کلاس می باشد. ممکنه بپرسید چه کسانی قصد دارند به طور غیرقانونی به داده ی من دسترسی داشته باشند؟ موقعی که یک برنامه نویس یک کلاس در جاوا ایجاد می کند، او یک الگوی خاص از این کد بوسیله دیگر کلاس ها طرح می کند. برای مثال متغییر grossIncome نبایستی بطور مستقیم اصلاح شود، بلکه بوسیله متدی که روش های اعتبار سنجی را انجام میدهد مطابق با قواعد برنامه مقدار اختصاص داده شود.
یک برنامه نویس جاوا ممکنه تصمیم بگیرد ۱۵تا از ۲۰ متغییر را پنهان کند، بنابراین دیگر کلاس ها نمی توانند به آنها دسترسی پیدا کنند. بعنوان مثال یک راننده را در نظر بگیرید، آیا لازم است کارکرد تمام قطعات یک اتومبیل را بداند؟ البته که نه، او فقط احتیاج به چطور روشنو خاموش کردن اتومبیل،کارکردن با برف پاک کن و… دارد که در اصطلاح برنامه نویسی به آن واسط مشترک اتومبیل می گوییم.
@this_java
کپسوله سازی قابلیتی برای حفظ و پنهان کردن اشیای کلاس می باشد. ممکنه بپرسید چه کسانی قصد دارند به طور غیرقانونی به داده ی من دسترسی داشته باشند؟ موقعی که یک برنامه نویس یک کلاس در جاوا ایجاد می کند، او یک الگوی خاص از این کد بوسیله دیگر کلاس ها طرح می کند. برای مثال متغییر grossIncome نبایستی بطور مستقیم اصلاح شود، بلکه بوسیله متدی که روش های اعتبار سنجی را انجام میدهد مطابق با قواعد برنامه مقدار اختصاص داده شود.
یک برنامه نویس جاوا ممکنه تصمیم بگیرد ۱۵تا از ۲۰ متغییر را پنهان کند، بنابراین دیگر کلاس ها نمی توانند به آنها دسترسی پیدا کنند. بعنوان مثال یک راننده را در نظر بگیرید، آیا لازم است کارکرد تمام قطعات یک اتومبیل را بداند؟ البته که نه، او فقط احتیاج به چطور روشنو خاموش کردن اتومبیل،کارکردن با برف پاک کن و… دارد که در اصطلاح برنامه نویسی به آن واسط مشترک اتومبیل می گوییم.
@this_java
سازنده های پیش فرض و بدون ارگومان
هر کلاس حداقل باید دارای یک سازنده باشد. اگر سازنده ای در اعلان کلاس در نظر نگرفته باشید کامپایلر یک سازنده پیش فرض که ارگومانی دریافت نمیکند را فراخوانی میکند سازنده ی پیش فرض مبادرت به مقدار دهی متغیر های نمونه با مقادیر اولیه مشخص شده در اعلانشان یا مقادیر پیش فرضشان میکند (صفر برای نوع های عددی , false برای مقادیر بولی و null برای مراجعه ها) ..
اگر در کلاسی اقدام به اعلان سازنده کرده باشید کامپایلر سازنده ی پیش فرض برای ان کلاس ایجاد نخواهد کرد. در این مورد برای مشخص کردن مقدار دهی پیش فرض برای شی های کلاس بایستی یک سازنده ی بدون ارگومان اعلان کنید..
هر کلاس حداقل باید دارای یک سازنده باشد. اگر سازنده ای در اعلان کلاس در نظر نگرفته باشید کامپایلر یک سازنده پیش فرض که ارگومانی دریافت نمیکند را فراخوانی میکند سازنده ی پیش فرض مبادرت به مقدار دهی متغیر های نمونه با مقادیر اولیه مشخص شده در اعلانشان یا مقادیر پیش فرضشان میکند (صفر برای نوع های عددی , false برای مقادیر بولی و null برای مراجعه ها) ..
اگر در کلاسی اقدام به اعلان سازنده کرده باشید کامپایلر سازنده ی پیش فرض برای ان کلاس ایجاد نخواهد کرد. در این مورد برای مشخص کردن مقدار دهی پیش فرض برای شی های کلاس بایستی یک سازنده ی بدون ارگومان اعلان کنید..