怎样在Java中反转字符串?
的有关信息介绍如下:
本文通过示例讨论了在Java中反转字符串的5种不同方法。
示例:
建议:请先在{IDE}上尝试您的方法,然后再继续讨论解决方案。
先决条件:Java中的String vs StringBuilder vs StringBuffer
以下是一些关于String和StringBuilder类的有趣事实:
1字符串的对象是不可变的。
2Java中的String类没有reverse()方法,但是StringBuilder类内置了reverse()方法。
三。StringBuilder类没有toCharArray()方法,而String类有toCharArray()方法。
建议:请先在{IDE}上尝试您的方法,然后再继续讨论解决方案。
将字符串转换为字节:getBytes()方法用于将输入字符串转换为字节[]。
方法:
1创建一个长度等于
输入字符串的长度。
2存储字节(我们使用
getBytes()方法)以相反的顺序
临时字节[]。
三。使用byte[]创建一个新的字符串abject
存储结果。
Java
// Java program to ReverseString using ByteArray.
import java.lang.*;
import Java.io: Permanent & Contract Remote Work..*;
import java.util.*;
// Class of ReverseString
class ReverseString {
public static void main(String[] args)
{
String input = "GeeksforGeeks";
// getBytes() method to convert string
// into bytes[].
byte[] strAsByteArray = input.getBytes();
byte[] result = new byte[strAsByteArray.length];
// Store result in reverse order into the
// result byte[]
for (int i = 0; i < strAsByteArray.length; i++)
result[i] = strAsByteArray[strAsByteArray.length - i - 1];
System.out.println(new String(result));
}
}
Output:
skeeGrofskeeG
使用StringBuilder类的内置reverse()方法:String类没有reverse()方法,我们需要将输入字符串转换为StringBuilder,这是通过使用StringBuilder的append方法实现的。然后,通过从第一个索引到最后一个索引进行扫描,打印出反向字符串的字符。
// Java program to ReverseString using StringBuilder
import java.lang.*;
import Java.io: Permanent & Contract Remote Work..*;
import java.util.*;
// Class of ReverseString
class ReverseString {
public static void main(String[] args)
{
String input = "Geeks for Geeks";
StringBuilder input1 = new StringBuilder();
// append a string into StringBuilder input1
input1.append(input);
// reverse StringBuilder input1
input1.reverse();
// print reversed String
System.out.println(input1);
}
}
Output:
skeeG rof skeeG
将字符串转换为字符数组:用户输入要反转的字符串。
方法:
1 首先,将字符串转换为字符数组通过使用内置的Java字符串类方法toCharArray()。
2 然后,从头到尾扫描字符串,一个接一个地打印字符。
// Java program to Reverse a String by
// converting string to characters one
// by one
import java.lang.*;
import Java.io: Permanent & Contract Remote Work..*;
import java.util.*;
// Class of ReverseString
class ReverseString {
public static void main(String[] args)
{
String input = "GeeksForGeeks";
// convert String to character array
// by using toCharArray
char[] try1 = input.toCharArray();
for (int i = try1.length - 1; i >= 0; i--)
System.out.print(try1[i]);
}
}
Output:
skeeGrofskeeG
使用toCharArray()将输入字符串转换为字符数组:使用string类的内置方法toCharArray()将输入字符串转换为字符数组。然后,从两侧(即从开始索引(左)和从最后索引(右)同时扫描字符数组。
1将左索引设置为0,右索引设置为字符串长度-1。
2将开始索引扫描的字符与最后一次索引扫描的字符交换逐一地。之后,将左索引增加1(left++),并减少右索引按1,即(右--)移动到字符数组中的下一个字符。
三.继续,直到左边小于或等于右边。
Java
// Java program to Reverse a String using swapping
// of variables
import java.lang.*;
import Java.io: Permanent & Contract Remote Work..*;
import java.util.*;
// Class of ReverseString
class ReverseString {
public static void main(String[] args)
{
String input = "Geeks For Geeks";
char[] temparray = input.toCharArray();
int left, right = 0;
right = temparray.length - 1;
for (left = 0; left < right; left++, right--) {
// Swap values of left and right
char temp = temparray[left];
temparray[left] = temparray[right];
temparray[right] = temp;
}
for (char c : temparray)
System.out.print(c);
System.out.println();
}
}
Output:
skeeG roF skeeG
使用ArrayList对象:使用toCharArray()内置方法将输入字符串转换为字符数组。然后,将数组的字符添加到ArrayList对象中。Java还为Collections类内置了reverse()方法。因为Collections class reverse()方法接受一个list对象,所以要反转列表,我们将传递ArrayList对象,它是字符列表的一种类型。
1我们将字符串内容复制到对象
ArrayList的。
1我们使用
ArrayList上的listIterator()方法
对象。
2ListIterator对象用于在
名单。
三。ListIterator对象帮助我们进行迭代
在倒过来的单子上打印一张
一个到输出屏幕。
// Java program to Reverse a String using ListIterator
import java.lang.*;
import Java.io: Permanent & Contract Remote Work..*;
import java.util.*;
// Class of ReverseString
class ReverseString {
public static void main(String[] args)
{
String input = "Geeks For Geeks";
char[] hello = input.toCharArray();
List<Character> trial1 = new ArrayList<>();
for (char c : hello)
trial1.add(c);
Collections.reverse(trial1);
ListIterator li = trial1.listIterator();
while (li.hasNext())
System.out.print(li.next());
}
}
Output:
skeeG roF skeeG
使用StringBuffer:String类没有reverse()方法,我们需要将输入字符串转换为StringBuffer,这是通过使用StringBuffer的reverse方法实现的。
// Java program to demonstrate conversion from
// String to StringBuffer and reverse of string
import java.lang.*;
import java.io.*;
import java.util.*;
public class Test {
public static void main(String[] args)
{
String str = "Geeks";
// conversion from String object to StringBuffer
StringBuffer sbr = new StringBuffer(str);
// To reverse the string
sbr.reverse();
System.out.println(sbr);
}
}
Output:
skeeG



