java反轉字元串
❶ java程序關於字元串倒置
String類型對象的內容是不可以修改的,所以JAVA提供StringBuffer提供對字元串的修改操作。其成員方法reverse()提供對字元串的倒置功能。所以一般先將String類轉化為StringBuffer類在做處理。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String inStr=scanner.nextLine();//標准輸入字元串
StringBuffer reStr=new StringBuffer(inStr);//將String類型轉化為StringBuffer類型
reStr.reverse();//StringBuffer類的成員方法reverse可以倒置字元串
inStr=reStr.toString();//轉化為String類型
System.out.println("倒置後字元串為:"+inStr);
}
}
❷ java請問如何用reverse().toString();進行倒序輸入字元串
查API文檔(以下是API中對reverse方法的描述):
reverse
public StringBuffer reverse()將此字元序列用其反轉形式取代。如果序列中存在代理項對 (surrogate pair),在 reverse 操作中將其作為單個字元處理。因此,高-低代理項的順序不會反轉。假設 n 為執行 reverse 方法前此字元序列的字元長度(並非 char 值的長度),則新字元序列中索引 k 處的字元將等於原字元序列索引 n-k-1 處的字元。
注意,進行 reverse 操作後,執行操作前未成對的低代理項和高代理項將成為代理項對。例如,反轉 "\uDC00\uD800" 將生成有效的代理項對 "\uD800\uDC00"。
返回:
此對象的一個引用。
從以下版本開始:
JDK1.0.2
❸ java中不藉助任何現有類庫實現對字元串的反轉方法
一樓已經寫出了核心代碼;二樓功能實現了,但用的是類庫已經寫好的方法。
我再來詳細補充下吧:
import java.util.Scanner;
public class ReverseDemo {
/**
* @description 字元串的反轉
*/
public void reverse(){
System.out.println("請輸入字元串:");
Scanner in=new Scanner(System.in);
String str=in.nextLine();//把從鍵盤接受的字元串存入str
char[] ch=str.toCharArray();//把每個字元分別存入char數組
for(int i=ch.length-1;i>=0;i--){//一樓已經寫出來的代碼
System.out.print(ch[i]);
}
}
public static void main(String[] args) {
new ReverseDemo().reverse();
}
}
呵呵,不明白樓主的意思是從頭到尾都不要用到類庫的相關方法,還是只不要用到類庫中提供的reverse( )就可以了。樓下的意思是,不要用到類庫的任何方法。那編起程來的確是很蛋痛的,呵呵。我只是理解為不用類庫提供的反轉方法就可以了,不管這么多。再寫了一個方法,也大同小異,還是用到了類庫的方法charAt( )。
import java.util.Scanner;
public class ReverseDemo {
/**
* @description 字元串的反轉
*/
public void reverse(){
System.out.println("請輸入字元串:");
Scanner in=new Scanner(System.in);
String str=in.nextLine();
char[] ch=new char[str.length()];
for(int i=0;i<str.length();i++){
ch[i]=str.charAt(i);
}
for(int i=ch.length-1;i>=0;i--){
System.out.print(ch[i]);
}
}
public static void main(String[] args) {
new ReverseDemo().reverse();
}
}
❹ java 我string了一個s,然後把s的字元串反轉,用reverse方法
第一個問題:String沒有reverse方法,你可以 轉成StringBuffer後調用
第二個問題:s不會變成StringBuffer,因為s沒有參與轉換。
String s="abcd"; //定義一個String類型
StringBuffer sb =new StringBuffer(s);//轉成StringBuffer將s添加進去
System.out.println(sb.reverse().toString());//輸出轉換後的sb,並轉換成String類型
❺ Java 里使用reverse()方法來把字元串反轉,為什麼Java提示沒有定義方法reverse
這個方法不是jdk自帶的,需要自己寫,參考如下:
public String reverseSting(String inputString) {
char[] inputStringArray = inputString.toCharArray();
String reverseString = "";
for (int i = inputStringArray.length - 1; i >= 0; i--) {
reverseString += inputStringArray[i];
}
return reverseString;
}
❻ java 實現字元串反轉,要求時間和空間復雜度最優
不知為何你有這種想法,如果有好的演算法可以和我討論下,下面我寫了2個代碼希望能幫到你。
package app;
public class TransDemo {
//abcdef「反轉後為「fedcba
public static void main(String[] args){
String str = "abcdef";
char[] ary = str.toCharArray();
for(int i = 0; i< str.length()/2; i++){
int temp = ary[ary.length-i-1]-ary[i];
ary[i] += temp;
ary[ary.length-i-1] -=temp;
}
str = new String(ary);
System.out.println(str);
}
}
package app;
public class TransDemo {
//abcdef「反轉後為「fedcba
public static void main(String[] args){
String str = "abcdef";
char[] ary = str.toCharArray();
for(int i = 0; i< str.length()/2; i++){
char c = ary[i];
ary[i] = ary[str.length()-1-i];
ary[str.length()-1-i] = c;
}
str = new String(ary);
System.out.println(str);
}
}
❼ 如何實現一個字元串的置逆(java)
我們可以通過運用JAVA的StringBuffer的1字元串反轉方法直接置逆,下面將舉例說明:
publicclassTest{
publicstaticvoidmain(String[]args){
Stringstr="12345678";
System.out.println(str);
//聲明一個緩沖字元串
StringBuffersb=newStringBuffer(str);
//通過reverse()反轉方法,反轉;然後轉換成字元串
str=sb.reverse().toString();
System.out.println(str);
}
}
❽ 3. 錛圝ava錛夊啓涓涓鏂規硶錛屽弬鏁頒負瀛楃︿覆錛屽疄鐜板硅ュ瓧絎︿覆鐨勫弽杞錛岃繑鍥炲弽杞鍚庣殑瀛楃︿覆銆傚俛bc錛屽弽杞鍚庝負cba銆
棣栧厛緇欎綘浠嬬粛涓涓綾誨拰涓涓鏂規硶錛屽備笅錛
StringBulider綾誨氨鍍忎竴涓鍙鍙橀暱搴︾殑瀛楃︿覆鏁扮粍涓鏍鳳紝鍐呭瑰拰闀垮害閮藉彲浠ヨ鏀瑰彉錛屾棦鏂逛究鍙堣妭鐪佸紑閿銆俽everse錛堬級緲昏漿StringBulider瀵硅薄涓鐨勫瓧絎︿覆銆
public class Main{
public static void main(String args[]) throws Exception{
String array="嫻烽様鍑楸艱穬錛屽ぉ楂樹換楦熼"錛
StringBuilder sb=new StringBuilder(array);
sb.reverse();
System.out.println(sb);}
}