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