آموزش معکوس کردن آرایه در جاوا
سلام دوستان در این سری از آموزش برنامه نویسی جاوا به آموزش معکوس کردن آرایه در جاوا می پردازیم در این آموزش یاد خواهید گرفت تا یک رشته یا یک آرایه را معکوس کنید در ادامه با ما همراه باشید تا نحوه معکوس یا reverse کردن رشته یا آرایه (Array) را یاد گیرید.
برای معکوس کردن آرایه کافی است آن را در یک Array قرار داده سپس با یک for آن را معکوس کنیم مثال زیر را مشاهده کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | /** * Created by programchi.ir */ import java.util.Collections; import java.util.List; import java.util.Arrays; public class ReverseStringArray { public static void main(String args[]){ //String array String[] strNames = new String[]{"Max", "Tom", "Mark", "John"}; //create a list from String array List<String> list = Arrays.asList(strNames); //reverse the list using Collections.reverse method Collections.reverse(list); //convert the list back to String array strNames = (String[]) list.toArray(); System.out.println("reversed String array "); //print the reversed String array for(int i=0; i < strNames.length; i++){ System.out.println(strNames[i]); } } } |
در بالا ابتدا یک آرایه از رشته ایحاد کردیم و یکسری مقدار در آن قرار دادیم بعد از اینکار یک لیست ایجاد کردیم و آن آرایه را به List تبدیل کردیم سپس توسط متد Collection آن را برعکس کردیم و در نهایت با استفاده از یک for آن را چاپ کرده ایم.
خروجی کد بالا همانند زیر خواهد بود.
1 2 3 4 5 6 7 8 | /* Output : reversed String array John Mark Tom Max */ |
برای اینکه یک رشته رو برعکس کنیم می توانیم از StringBuilder استفاده کنیم ساده ترین حالت استفاده از StringBuilder است.
1 | new StringBuilder("hi").reverse().toString() |
حالا شاید شخصی نخواهد با استفاده از StringBuilder این کار را انجام دهد می تواند مثل زیر عمل کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public static String reverse(String input){ char[] in = input.toCharArray(); int begin=0; int end=in.length-1; char temp; while(end>begin){ temp = in[begin]; in[begin]=in[end]; in[end] = temp; end--; begin++; } return new String(in); } |
در بالا با استفاده از Char این کار انجام شده یعنی رشته به Char تبدیل شده سپس برعکس شده است.
یک راه دیگر برای معکوس یا برعکس یا reveres یک رشته نیز وجود دارد با استفاده از XOR کردن رشته می توان آن را معکوس کرد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public static void reverseUsingXOR(char[] str) { int low = 0; int high = str.length - 1; while (low < high) { str[low] = (char) (str[low] ^ str[high]); str[high] = (char) (str[low] ^ str[high]); str[low] = (char) (str[low] ^ str[high]); low++; high--; } //display reversed string for (int i = 0; i < str.length; i++) { System.out.print(str[i]); } } |
نحوه استفاده از کذ بالا همانند زیر خواهد بود.
1 2 | String str = "prateek"; reverseUsingXOR(str.toCharArray()); |
این آموزش هم به پایان رسید.
موفق و موید باشید.