最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java反轉(zhuǎn)字符串的10種方法

 更新時(shí)間:2019年06月05日 10:36:08   作者:唐尤華  
這篇文章主要介紹了Java反轉(zhuǎn)字符串的10種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,下面我們來一起學(xué)習(xí)一下吧

在這篇文章中,我們會(huì)討論10種用Java反轉(zhuǎn)字符串的方法,通過10個(gè)Java程序反轉(zhuǎn)字符串。例如,把字符串“javaguides” 反轉(zhuǎn)為 “sediugavaj”。

1. 使用 + (String連接) 操作符

package net.javaguides.corejava.string;
/**
* 
* @author Ramesh Fadatare
*
*/
public class ReverseWithStringConcat {
public static void main(String[] args) {
ReverseWithStringConcat concat = new ReverseWithStringConcat();
concat.reverseWithStringConcat("javaguides");
}
private String reverseWithStringConcat(String input) {
String output = new String();
for (int i = (input.length() - 1); i >= 0; i--) {
output += (input.charAt(i));
}
display(input, output);
return output;
}
private void display(String input, String output) {
System.out.println(" input string :: " + input);
System.out.println(" output string :: " + output);
}
}

輸出:

input string :: javaguides
output string :: sediugavaj

2. 使用 StringBuilder

package net.javaguides.corejava.string;
/**
* 
* @author Ramesh Fadatare
*
*/
public class ReverseWithStringBuilderBuiltinMethod {
public static void main(String[] args) {
ReverseWithStringBuilderBuiltinMethod builtinMethod = new ReverseWithStringBuilderBuiltinMethod();
builtinMethod.reverseWithStringBuilderBuiltinMethod("javaguides");
}
public String reverseWithStringBuilderBuiltinMethod(String string) {
final StringBuilder builder = new StringBuilder(string);
display(string, builder.reverse().toString());
return builder.reverse().toString();
}
private void display(String input, String output) {
System.out.println(" input string :: " + input);
System.out.println(" output string :: " + output);
}
}

輸出:

input string :: javaguides
output string :: sediugavaj

3. 使用 String charAt 方法

package net.javaguides.corejava.string;
/**
* 
* @author Ramesh Fadatare
*
*/
public class ReverseWithStringChatAt{
public static void main(String[] args) {
ReverseWithStringChatAt reverseWithStringBuilder = new ReverseWithStringChatAt();
reverseWithStringBuilder.reverseWithStringBuilder("javaguides");
}
public String reverseWithStringChatAt(String string) {
final StringBuilder builder = new StringBuilder();
for (int i = (string.length() - 1); i >= 0; i--) {
builder.append(string.charAt(i));
}
display(string, builder.toString());
return builder.toString();
}
private void display(String input, String output) {
System.out.println(" input string :: " + input);
System.out.println(" output string :: " + output);
}
}

輸出:

input string :: javaguides
output string :: sediugavaj

4. 通過交換字符反轉(zhuǎn)

package net.javaguides.corejava.string;
/**
* 
* @author Ramesh Fadatare
*
*/
public class ReverseStringWithSwaps {
public static void main(String[] args) {
ReverseStringWithSwaps stringWithSwaps = new ReverseStringWithSwaps();
stringWithSwaps.reverseWithSwaps("javaguides");
}
public String reverseWithSwaps(String string) {
final char[] array = string.toCharArray();
final int length = array.length - 1;
final int half = (int) Math.floor(array.length / 2);
char c;
for (int i = length; i >= half; i--) {
c = array[length - i];
array[length - i] = array[i];
array[i] = c;
}
display(string, String.valueOf(array));
return String.valueOf(array);
}
private void display(String input, String output) {
System.out.println(" input string :: " + input);
System.out.println(" output string :: " + output);
}
}

輸出:

input string :: javaguides
output string :: sediugavaj

5. 使用 XOR(^) 操作符反轉(zhuǎn)

package net.javaguides.corejava.string;
/**
* 
* @author Ramesh Fadatare
*
*/
public class ReverseStringWithXOR {
public static void main(String[] args) {
ReverseStringWithXOR stringWithXOR = new ReverseStringWithXOR();
stringWithXOR.reverseWithXOR("javaguides");
}
public String reverseWithXOR(String string) {
final char[] array = string.toCharArray();
final int length = array.length;
final int half = (int) Math.floor(array.length / 2);
for (int i = 0; i < half; i++) {
array[i] ^= array[length - i - 1];
array[length - i - 1] ^= array[i];
array[i] ^= array[length - i - 1];
}
display(string, String.valueOf(array));
return String.valueOf(array);
}
private void display(String input, String output) {
System.out.println(" input string :: " + input);
System.out.println(" output string :: " + output);
}
}


輸出:

input string :: javaguides
output string :: sediugavaj

6. 使用堆棧

package net.javaguides.corejava.string;
import java.util.Stack;
/**
* 
* @author Ramesh Fadatare
*
*/
public class ReverseStringUsingStack {
// Function to reverse a string in Java using a stack and character array
public static String reverse(String str) {
// base case: if string is null or empty
if (str == null || str.equals(""))
return str;
// create an empty stack of characters
Stack < Character > stack = new Stack < Character > ();
// push every character of the given string into the stack
char[] ch = str.toCharArray();
for (int i = 0; i < str.length(); i++)
stack.push(ch[i]);
// start from index 0
int k = 0;
// pop characters from the stack until it is empty
while (!stack.isEmpty()) {
// assign each popped character back to the character array
ch[k++] = stack.pop();
}
// convert the character array into string and return it
return String.copyValueOf(ch);
}
public static void main(String[] args) {
String str = "javaguides";
str = reverse(str); // string is immutable
System.out.println("Reverse of the given string is : " + str);
}
}

輸出:

Reverse of the given string is : sediugavaj

7. 使用 Collections reverse() 方法

package net.javaguides.corejava.string;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* 
* @author Ramesh Fadatare
*
*/
public class ReverseStringUsingCollectionsReverseMethod {
// Function to reverse a string in Java using Collections.reverse()
public static String reverse(String str) {
// base case: if string is null or empty
if (str == null || str.equals(""))
return str;
// create an empty list of characters
List < Character > list = new ArrayList < Character > ();
// push every character of the given string into it
for (char c: str.toCharArray())
list.add(c);
// reverse list using java.util.Collections reverse()
Collections.reverse(list);
// covert ArrayList into String using StringBuilder and return it
StringBuilder builder = new StringBuilder(list.size());
for (Character c: list)
builder.append(c);
return builder.toString();
}
public static void main(String[] args) {
String str = "Java Guides";
// String is immutable
str = reverse(str);
System.out.println("Reverse of the given string is : " + str);
}
}

輸出:

Reverse of the given string is : sediuG avaJ

8. 使用 Byte 數(shù)組

package net.javaguides.corejava.string;
/**
* 
* @author Ramesh Fadatare
*
*/
public class ReverseStringUsingByteArray {
// Function to reverse a string in Java using byte array
public static String reverse(String str) {
// return if string is null or empty
if (str == null || str.equals(""))
return str;
// convert string into bytes
byte[] bytes = str.getBytes();
// start from the two end points l and h of the given string
// and increment l & decrement h at each iteration of the loop
// until two end-points intersect (l >= h)
for (int l = 0, h = str.length() - 1; l < h; l++, h--) {
// Swap values at l and h
byte temp = bytes[l];
bytes[l] = bytes[h];
bytes[h] = temp;
}
// convert byte array back into the string
return new String(bytes);
}
public static void main(String[] args) {
String str = "Java Guides";
// String is immutable
str = reverse(str);
System.out.println("Reverse of the given string is : " + str);
}
}

輸出:

Reverse of the given string is : sediuG avaJ

9. 使用 substring() 方法

package net.javaguides.corejava.string;
/**
* 
* @author Ramesh Fadatare
*
*/
public class UsingSubStringFunction {
// Function to reverse a string in Java using recursion
private static String reverse(String str) {
// base case: if string is null or empty
if (str == null || str.equals(""))
return str;
// last character + recurse for remaining string
return str.charAt(str.length() - 1) + reverse(str.substring(0, str.length() - 1));
}
public static void main(String[] args) {
String str = "javaguides";
// string is immutable
str = reverse(str);
System.out.println("Reverse of the given string is : " + str);
}
}

輸出:

Reverse of the given string is : sediugavaj

10. 使用遞歸

package net.javaguides.corejava.string;
/**
* 
* @author Ramesh Fadatare
*
*/
public class UsingRecursion {
static int i = 0;
// Recursive function to reverse a string in Java using static variable
private static void reverse(char[] str, int k) {
// if we have reached the end of the string
if (k == str.length)
return;
// recurse for next character
reverse(str, k + 1);
if (i <= k) {
char temp = str[k];
str[k] = str[i];
str[i++] = temp;
}
}
public static String reverse(String str) {
// base case: if string is null or empty
if (str == null || str.equals(""))
return str;
// convert string into a character array
char[] A = str.toCharArray();
// reverse character array
reverse(A, 0);
// convert character array into the string
return String.copyValueOf(A);
}
public static void main(String[] args) {
String str = "Java Guides";
// string is immutable
str = reverse(str);
System.out.println("Reverse of the given string is : " + str);
}
}

輸出:

Reverse of the given string is : sediuG avaJ

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JWT在OpenFeign調(diào)用中進(jìn)行令牌中繼詳解

    JWT在OpenFeign調(diào)用中進(jìn)行令牌中繼詳解

    Feign是一個(gè)聲明式的Web Service客戶端,是一種聲明式、模板化的HTTP客戶端。而OpenFeign是Spring Cloud 在Feign的基礎(chǔ)上支持了Spring MVC的注解,如@RequesMapping等等,這篇文章主要給大家介紹了關(guān)于JWT在OpenFeign調(diào)用中進(jìn)行令牌中繼的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • mybatis中的緩存機(jī)制

    mybatis中的緩存機(jī)制

    這篇文章主要介紹了mybatis中的緩存機(jī)制用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Java版數(shù)據(jù)結(jié)構(gòu)插入數(shù)據(jù)時(shí)遇到的結(jié)點(diǎn)為空的問題詳解

    Java版數(shù)據(jù)結(jié)構(gòu)插入數(shù)據(jù)時(shí)遇到的結(jié)點(diǎn)為空的問題詳解

    這篇文章主要介紹了Java版數(shù)據(jù)結(jié)構(gòu)插入數(shù)據(jù)時(shí)遇到的結(jié)點(diǎn)為空的問題及解決辦法,需要的朋友們可以學(xué)習(xí)下。
    2019-09-09
  • SpringMVC中的攔截器詳解及代碼示例

    SpringMVC中的攔截器詳解及代碼示例

    這篇文章主要介紹了SpringMVC中的攔截器詳解及代碼示例,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • mybatis批量添加,批量更新之前如何判斷是否已經(jīng)存在

    mybatis批量添加,批量更新之前如何判斷是否已經(jīng)存在

    這篇文章主要介紹了mybatis批量添加,批量更新之前如何判斷是否已經(jīng)存在,具有很好的參考價(jià)值,希望對(duì)的有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Druid連接池未關(guān)閉導(dǎo)致內(nèi)存泄漏問題

    Druid連接池未關(guān)閉導(dǎo)致內(nèi)存泄漏問題

    這篇文章主要介紹了Druid連接池未關(guān)閉導(dǎo)致內(nèi)存泄漏問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • java遞歸實(shí)現(xiàn)科赫雪花

    java遞歸實(shí)現(xiàn)科赫雪花

    這篇文章主要為大家詳細(xì)介紹了java遞歸實(shí)現(xiàn)科赫雪花,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Java Web學(xué)習(xí)教程之Hibernate And MyBatis的理解

    Java Web學(xué)習(xí)教程之Hibernate And MyBatis的理解

    這篇文章主要給大家介紹了關(guān)于Java Web學(xué)習(xí)教程之Hibernate And MyBatis的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • MyBatis自定義resultMap三種映射關(guān)系示例詳解

    MyBatis自定義resultMap三種映射關(guān)系示例詳解

    這篇文章主要介紹了MyBatis自定義resultMap三種映射關(guān)系,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • Java子線程調(diào)用RequestContextHolder.getRequestAttributes()方法問題詳解

    Java子線程調(diào)用RequestContextHolder.getRequestAttributes()方法問題詳解

    這篇文章主要介紹了Java子線程調(diào)用RequestContextHolder.getRequestAttributes()方法問題處理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-09-09

最新評(píng)論

云阳县| 武义县| 舒城县| 浏阳市| 满城县| 乌兰察布市| 卓尼县| 喀喇沁旗| 林西县| 唐山市| 抚宁县| 合水县| 岫岩| 灌南县| 东城区| 浦县| 商南县| 鄯善县| 高邮市| 涟水县| 牟定县| 古蔺县| 盘锦市| 泸州市| 武强县| 长沙市| 鸡西市| 资源县| 上栗县| 河西区| 镇江市| 沅江市| 漳浦县| 甘洛县| 曲沃县| 乐安县| 蓬安县| 镇坪县| 彭泽县| 洪江市| 东方市|