注册 登录
编程论坛 JAVA论坛

新手,请问在Java中怎么把一句中文到过来输出,就是把“我是中国人”到倒过来为“人国中是我”

胡丽红 发布于 2016-04-16 20:31, 3665 次点击
import *;
import java.util.Scanner;
public class TestReverse{
   public static void main(String args[]){
       try{
           Scanner input=new Scanner(System.in);
System.out.println("输入:");
String str=input.next();
       BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        str=br.readLine();
       char ch[]=new char[str.length()];
       ch=str.toCharArray();
       for(int i=ch.length-1;i>=0;i--){
               System.out.print(ch[i]);
           }
      }catch(IOException e){}
   }
}这样只能针对英文
10 回复
#2
林月儿2016-04-16 21:21
程序代码:
import javax.swing.JOptionPane;

public class TestReverse {
    public static void main(String[] args) {
        String msg=JOptionPane.showInputDialog("请输入:");
        StringBuilder sb=new StringBuilder(msg);
        System.out.println("逆向前:"+msg);
        sb.reverse();
        System.out.println("逆向后:"+sb.toString());
    }
}
#3
胡丽红2016-04-17 18:42
回复 2楼 林月儿
谢谢版主,感谢你的回答,解决了我这两天来的苦恼。
#4
林月儿2016-04-17 20:00
不客气,控制台输入的话,如下:
程序代码:
import java.util.Scanner;

public class ReverseTest {
    public static void main(String[] args) {
          System.out.println("请输入:");
          Scanner scan=new Scanner(System.in);
          String msg=scan.nextLine();
          scan.close();
          StringBuilder sb=new StringBuilder(msg);
          System.out.println("逆向前:"+msg);
          sb.reverse();
          System.out.println("逆向后:"+sb.toString());
    }
}

加油!
#5
胡丽红2016-04-19 16:56
import java.util.Scanner;

public class ReverseTest {
    public static void main(String[] args) {
          System.out.println("请输入:");
          Scanner scan=new Scanner(System.in);
          String msg=scan.nextLine();
          scan.close();
          StringBuilder sb=new StringBuilder(msg);
          System.out.println("逆向前:"+msg);
          sb.reverse();
          System.out.println("逆向后:"+sb.toString());
    }
}师姐,用这个方法好像不能正确输出反序文字。我之前也尝试过。
#6
胡丽红2016-04-19 16:59
师姐,我之前一直在郁闷,控制台输入和窗口输入有什么不同?我之前在做管理学生成绩表,然后也是出现这个问题,输出名字时,出现错误。可是不知道怎么解决。
import java.util.Scanner;
public class 成绩表{
 public static void main(String args[]){
    Scanner input =new Scanner(System.in);
    System.out.println("你要输入多少个学生?");
    int renshu=input.nextInt();
    System.out.println("你要输入几个科目?");
    int courseNum=input.nextInt();
    String name[]=new String[renshu];
    String course[]=new String[courseNum];
    int number[][]=new int[renshu][courseNum];
    for(int i=0;i<course.length;i++){
       System.out.println("请输入第"+(i+1)+"门课程");
       course[i]=input.next();
       }      
        for(int i=0;i<renshu;i++){
       System.out.println("请输入第"+(i+1)+"个学生姓名");
       name[i]=input.next();
       for(int j=0;j<courseNum;j++){
            System.out.println("请输入"+name[i]+course[j]+"的成绩");
            number[i][j]=input.nextInt();               
        }
       }  
       System.out.println("学生");
       for(int i=0;i<course.length;i++){
        System.out.print("\t"+course[i]);}
        System.out.print("\t总分\t平均分\t高分");
                System.out.println();
    }
}
#7
林月儿2016-04-19 18:20
回复 6楼 胡丽红
类命名的规范还是要遵守的,按照驼峰式命名法修正吧,至于你说的乱码,我这没有问题啊
public class ReverseTest {
    public static void main(String[] args) throws UnsupportedEncodingException {
          System.out.println("请输入:");
          Scanner scan=new Scanner(System.in);
          String msg=scan.nextLine();
          scan.close();
          StringBuilder sb=new StringBuilder(msg);
          System.out.println("逆向前:"+msg);
          sb.reverse();
          System.out.println("逆向后:"+new String(sb.toString().getBytes("gb2312"),"utf8"));
    }
}
可能是字符集编码问题了按照上面的方式转码试试吧
新问题等我有时间帮你看看咯!我也是新人,别客气
#8
林月儿2016-04-19 18:26
代码挺好啊,没写完的样子呢。。。你说窗口和控制台?
调用的类不一样啊,javax.swing.JOptionPane一个是java.util.Scanner
#9
胡丽红2016-04-19 20:07
回复 8楼 林月儿
我刚刚换了一个Java的应用程序输入同样的代码,那个学生管理成绩表竟然没有问题,难道是不同Java的应用程序之间代码也有不同吗?不兼容?
#10
林月儿2016-04-19 20:19
回复 9楼 胡丽红
这个应该是字符集编码的问题吧,看看文件属性什么的分析,不行再百度
#11
胡丽红2016-04-19 20:53
好的,谢谢你。
1