如何将一个字符串最快速的倒序输出

时间:2021-09-01 13:19:23
import java.util.*;   
public class Ni   
{   
 public static void main(String args[]){   
  Scanner sc=new Scanner(System.in);   
  String str=sc.next();   
     
  for(int i=str.length()-1;i>=0;i--){    
  System.out.print(str.charAt(i));    
  }    
  
 }   
}    


各位大侠 求解释
Scanner是个什么函数?

12 个解决方案

#1


import java.util.*;   
public class Ni   
{   
    public static void main(String args[]){   
        Scanner sc=new Scanner(System.in);   
        String str=sc.next();   
    
        System.out.println("----------method 1----------");
        char[] c = str.toCharArray();
        for(int i=c.length-1; i>=0; i--){   
            System.out.print(c);   
        }
        System.out.println();

        System.out.println("----------method 2----------");
        StringBuilder buf = new StringBuilder(str);
        System.out.println(buf.reverse());
    }   


Scanner不是函数,是个扫描器类
Scanner sc=new Scanner(System.in); //生成一个扫描器类对象sc,该对象用于扫描标准输入

还可以
Scanner sc = new Scanner(new FileInputStream("test.txt")); //用于扫描文件输入
   

#2


是扫描类

#3


System.out.print(str.charAt(i));
这一步是为了达到什么效果

#4


输出字符串str的第i个字符到控制台

#5


str.charAt(i)是获取str的i位置的字符
System.out.print(str.charAt(i));//所以这里是打印str的i位置的字符
因为for循环是从后向前遍历的,所以也就达到倒序输出的效果

#6


String str=sc.next();  这个可以看成暂时缓存!String str=sc.next();这个可以看成从缓存里取字符输入到控制台   

#7


假如说 输入abc 也就是他的长度是3  而i的值不就只能取到2吗?那岂不是先输出b嘛?怎样解释?

#8


abc 对应的序号是 012
第一个对应的是0!!!

#9


引用 7 楼 wxy709435320 的回复:
假如说 输入abc 也就是他的长度是3 而i的值不就只能取到2吗?那岂不是先输出b嘛?怎样解释?

数组的下标从0开始,第1个元素的位置是0,第2个的位置是1,第3个是2...依此类推
输入abc,长度是3,因为从0位置开始计算,所以最后一个元素就是长度-1,也就是3-1=2

#10


谢谢 各位了

#11


Scanner类是用来扑捉用户输入的

#12


该回复于2013-07-29 08:52:21被管理员删除

#1


import java.util.*;   
public class Ni   
{   
    public static void main(String args[]){   
        Scanner sc=new Scanner(System.in);   
        String str=sc.next();   
    
        System.out.println("----------method 1----------");
        char[] c = str.toCharArray();
        for(int i=c.length-1; i>=0; i--){   
            System.out.print(c);   
        }
        System.out.println();

        System.out.println("----------method 2----------");
        StringBuilder buf = new StringBuilder(str);
        System.out.println(buf.reverse());
    }   


Scanner不是函数,是个扫描器类
Scanner sc=new Scanner(System.in); //生成一个扫描器类对象sc,该对象用于扫描标准输入

还可以
Scanner sc = new Scanner(new FileInputStream("test.txt")); //用于扫描文件输入
   

#2


是扫描类

#3


System.out.print(str.charAt(i));
这一步是为了达到什么效果

#4


输出字符串str的第i个字符到控制台

#5


str.charAt(i)是获取str的i位置的字符
System.out.print(str.charAt(i));//所以这里是打印str的i位置的字符
因为for循环是从后向前遍历的,所以也就达到倒序输出的效果

#6


String str=sc.next();  这个可以看成暂时缓存!String str=sc.next();这个可以看成从缓存里取字符输入到控制台   

#7


假如说 输入abc 也就是他的长度是3  而i的值不就只能取到2吗?那岂不是先输出b嘛?怎样解释?

#8


abc 对应的序号是 012
第一个对应的是0!!!

#9


引用 7 楼 wxy709435320 的回复:
假如说 输入abc 也就是他的长度是3 而i的值不就只能取到2吗?那岂不是先输出b嘛?怎样解释?

数组的下标从0开始,第1个元素的位置是0,第2个的位置是1,第3个是2...依此类推
输入abc,长度是3,因为从0位置开始计算,所以最后一个元素就是长度-1,也就是3-1=2

#10


谢谢 各位了

#11


Scanner类是用来扑捉用户输入的

#12


该回复于2013-07-29 08:52:21被管理员删除