标题:新手,请问在Java中怎么把一句中文到过来输出,就是把“我是中国人”到倒过来 ...
只看楼主
胡丽红
Rank: 2
等 级:论坛游民
帖 子:28
专家分:25
注 册:2016-3-27
结帖率:100%
已结贴  问题点数:20 回复次数:10 
新手,请问在Java中怎么把一句中文到过来输出,就是把“我是中国人”到倒过来为“人国中是我”
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){}
   }
}这样只能针对英文
搜索更多相关主题的帖子: 我是中国人 public import 中文 Java 
2016-04-16 20:31
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
程序代码:
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());
    }
}

剑栈风樯各苦辛,别时冰雪到时春
2016-04-16 21:21
胡丽红
Rank: 2
等 级:论坛游民
帖 子:28
专家分:25
注 册:2016-3-27
得分:0 
回复 2楼 林月儿
谢谢版主,感谢你的回答,解决了我这两天来的苦恼。
2016-04-17 18:42
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
不客气,控制台输入的话,如下:
程序代码:
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());
    }
}

加油!

剑栈风樯各苦辛,别时冰雪到时春
2016-04-17 20:00
胡丽红
Rank: 2
等 级:论坛游民
帖 子:28
专家分:25
注 册:2016-3-27
得分:0 
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());
    }
}师姐,用这个方法好像不能正确输出反序文字。我之前也尝试过。
2016-04-19 16:56
胡丽红
Rank: 2
等 级:论坛游民
帖 子:28
专家分:25
注 册:2016-3-27
得分:0 
师姐,我之前一直在郁闷,控制台输入和窗口输入有什么不同?我之前在做管理学生成绩表,然后也是出现这个问题,输出名字时,出现错误。可是不知道怎么解决。
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();
    }
}
2016-04-19 16:59
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
回复 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"));
    }
}
可能是字符集编码问题了按照上面的方式转码试试吧
新问题等我有时间帮你看看咯!我也是新人,别客气

剑栈风樯各苦辛,别时冰雪到时春
2016-04-19 18:20
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:20 
代码挺好啊,没写完的样子呢。。。你说窗口和控制台?
调用的类不一样啊,javax.swing.JOptionPane一个是java.util.Scanner

剑栈风樯各苦辛,别时冰雪到时春
2016-04-19 18:26
胡丽红
Rank: 2
等 级:论坛游民
帖 子:28
专家分:25
注 册:2016-3-27
得分:0 
回复 8楼 林月儿
我刚刚换了一个Java的应用程序输入同样的代码,那个学生管理成绩表竟然没有问题,难道是不同Java的应用程序之间代码也有不同吗?不兼容?
2016-04-19 20:07
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
回复 9楼 胡丽红
这个应该是字符集编码的问题吧,看看文件属性什么的分析,不行再百度

剑栈风樯各苦辛,别时冰雪到时春
2016-04-19 20:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-463726-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.187108 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved