大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) Java反轉(zhuǎn)字符串

Java反轉(zhuǎn)字符串

更新時(shí)間:2022-08-31 10:47:58 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1154次

本文通過(guò)示例討論了在 Java 中反轉(zhuǎn)字符串的不同方法。

例子:

先決條件:Java中的String vs StringBuilder vs StringBuffer

以下是關(guān)于 String 和 StringBuilder 類的一些有趣事實(shí):

String 的對(duì)象是不可變的。

Java中的String類沒(méi)有reverse()方法,但是StringBuilder類有內(nèi)置的reverse()方法。

StringBuilder 類沒(méi)有 toCharArray() 方法,而 String 類有 toCharArray() 方法。

1.思路是遍歷字符串的長(zhǎng)度

2.遍歷時(shí)提取每個(gè)字符

3.在現(xiàn)有字符串前面添加每個(gè)字符

執(zhí)行:

// java program to reverse a word
import java.io.*;
import java.util.Scanner;
class GFG {
	public static void main (String[] args) {		
		String str= "Geeks", nstr="";
		char ch;		
	System.out.print("Original word: ");
	System.out.println("Geeks"); //Example word		
	for (int i=0; i<str.length(); i++)
	{
		ch= str.charAt(i); //extracts each character
		nstr= ch+nstr; //adds each character in front of the existing string
	}
	System.out.println("Reversed word: "+ nstr);
	}
}
//Contributed by Tiyasa

輸出

原詞:極客
反義詞:skeeG

將字符串轉(zhuǎn)換為字節(jié): getBytes() 方法用于將輸入字符串轉(zhuǎn)換為字節(jié)[]。

方法:

1. 創(chuàng)建一個(gè)長(zhǎng)度相等的臨時(shí) byte[]到輸入字符串的長(zhǎng)度。

2.存儲(chǔ)字節(jié)(我們通過(guò)使用

getBytes() 方法)以相反的順序進(jìn)入臨時(shí)字節(jié)[]。

3. 使用 byte[] 創(chuàng)建一個(gè)新的 String abject存儲(chǔ)結(jié)果。

執(zhí)行:

// Java program to ReverseString using ByteArray.
import java.lang.*;
import java.io.*;
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));
	}
}

輸出

skeeGrofskeeG

使用 StringBuilder 類的內(nèi)置 reverse() 方法:

String類沒(méi)有reverse()方法,我們需要將輸入的字符串轉(zhuǎn)換為StringBuilder,通過(guò)StringBuilder的append方法實(shí)現(xiàn)。之后,通過(guò)從第一個(gè)索引到最后一個(gè)索引進(jìn)行掃描,打印出反轉(zhuǎn)字符串的字符。

執(zhí)行:

// Java program to ReverseString using StringBuilder
import java.lang.*;
import java.io.*;
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);
	}
}

輸出

skeeG rof skeeG

將字符串轉(zhuǎn)換為字符數(shù)組:用戶輸入要反轉(zhuǎn)的字符串。

方法:

1.首先將String轉(zhuǎn)換為字符數(shù)組通過(guò)使用內(nèi)置的 Java String 類方法 toCharArray()。

2. 然后,從頭到尾掃描字符串,并一一打印字符。

執(zhí)行:

// Java program to Reverse a String by
// converting string to characters one
// by one
import java.lang.*;
import java.io.*;
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]);
	}
}

輸出

skeeGroFskeeG

使用 toCharArray()將輸入字符串轉(zhuǎn)換為字符數(shù)組:

使用 String 類的內(nèi)置方法 toCharArray() 將輸入字符串轉(zhuǎn)換為字符數(shù)組。然后,同時(shí)從兩側(cè)掃描字符數(shù)組,即從起始索引(左)和最后一個(gè)索引(右)。

1.設(shè)置left index等于0和right索引等于字符串 -1 的長(zhǎng)度。

2.交換起始索引的字符使用最后一個(gè)索引掃描進(jìn)行掃描逐個(gè)。之后,增加左邊按 1 索引(左++)并減少右由 1 即,(右--)移動(dòng)到下一個(gè)字符數(shù)組中的字符。

3. 繼續(xù)直到左邊小于等于正確的。

執(zhí)行:

// Java program to Reverse a String using swapping
// of variables
import java.lang.*;
import java.io.*;
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();
	}
}

輸出

斯基格羅夫斯基格

使用 ArrayList 對(duì)象:

使用內(nèi)置的 toCharArray() 方法將輸入字符串轉(zhuǎn)換為字符數(shù)組。然后,將數(shù)組的字符添加到 ArrayList 對(duì)象中。Java 還為 Collections 類內(nèi)置了 reverse() 方法。由于 Collections 類的 reverse() 方法接受一個(gè)列表對(duì)象,為了反轉(zhuǎn)列表,我們將傳遞 ArrayList 對(duì)象,它是一種字符列表。

1.我們將String內(nèi)容復(fù)制到一個(gè)對(duì)象數(shù)組列表。

2. 我們通過(guò)使用創(chuàng)建一個(gè) ListIterator 對(duì)象ArrayList 上的 listIterator() 方法目的。

3. ListIterator 對(duì)象用于迭代名單。

4. ListIterator 對(duì)象幫助我們進(jìn)行迭代在反向列表上并打印一個(gè)到輸出屏幕。

執(zhí)行:

// Java program to Reverse a String using ListIterator
import java.lang.*;
import java.io.*;
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());
	}
}

輸出

斯基格羅夫斯基格

使用字符串緩沖區(qū):

String類沒(méi)有reverse()方法,我們需要將輸入的字符串轉(zhuǎn)換為StringBuffer,這是通過(guò)StringBuffer的reverse方法來(lái)實(shí)現(xiàn)的。

執(zhí)行:

// 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);
	}
}

輸出

斯基格

通過(guò)從用戶那里獲取輸入來(lái)反轉(zhuǎn)字符串

/*package whatever //do not write package name here */
import java.io.*;
import java.util.Scanner;
class GFG {
	public static void main (String[] args) {
		Scanner scanner = new Scanner(System.in);
		String Str = scanner.nextLine();
		char[] arr = Str.toCharArray();				
		String rev = "";	
for(int i = Str.length() - 1; i >= 0; i--)
{
rev = rev + Str.charAt(i);
}
System.out.println(rev);		
	}
}

輸出

0

在上面的代碼中,我們實(shí)質(zhì)上是在開始迭代循環(huán)以創(chuàng)建一個(gè)新的反轉(zhuǎn)字符串之前從用戶那里讀取一個(gè)字符串。String類的“charAt”函數(shù)用于從末尾單獨(dú)檢索原始String的每個(gè)字符,“+”運(yùn)算符用于將它們連接成一個(gè)新的String。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 国产一区二区三区四区在线观看 | 国产欧美日本在线观看 | 久久精品国内一区二区三区 | 99资源| 蜜桃破解版免费看nba | 免费国产小视频在线观看 | 一区二区在线精品免费视频 | 天天干夜夜曰 | 国产人伦视频在线观看 | 成年女人免费视频播放77777 | 精品欧美一区二区三区在线观看 | 亚洲 欧洲 另类 综合 自拍 | 日本高清精品 | 久久996国产精品免费 | 久久久久日韩精品无 | 免费观看成人久久网免费观看 | 精品一区二区日本高清 | 国产永久在线 | 一级爱爱片一级毛片-一毛 一级白嫩美女毛片免费 | 久久精品国产一区二区 | 日本吻胸抓胸激烈视频网站 | 大陆一级毛片免费视频观看 | 国产3344永久在线观看视频 | 久青草国产手机在线视频 | 日本高清中文字幕在线观穿线视频 | 国语精品91自产拍在线观看二区 | 欧美在线香蕉在线现视频 | 操操操干干 | 男人的影院 | 成人影院在线观看 | 久久精品国产一区二区三区肥胖 | 国内免费在线视频 | 色婷婷视频在线观看 | 一级一级毛片看看 | 亚洲欧美成人永久第一网站 | 国产成人做受免费视频 | 黄色小视频在线免费观看 | 国产伦人伦偷精品视频 | 亚洲成片观看四虎永久 | 国产亚洲男人的天堂在线观看 | 国内免费在线视频 |