您的位置首页百科知识

怎样在Java中反转字符串?

怎样在Java中反转字符串?

的有关信息介绍如下:

怎样在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