Java实现数字逆序
输入一个不多于5位的正整数,逆序后输出结果:
具体代码如下:
package com.jasmyn.demo;
import java.util.*;
public class demo4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请输入一个不多于5位的正整数:");
Scanner sc = new Scanner(System.in);
String number=sc.next();
System.out.println("输入的数是"+number.length()+"位数");
for(int i=0;i<number.length();i++) {
System.out.println("第"+(i+1)+"位数是:"+number.charAt(i));
}
System.out.print("逆序后的数为:");
for(int i=number.length()-1;i>=0;i--) {
System.out.print(number.charAt(i));
}
}
}
//数字转化字符串可以直接加双引号
//String str=number+"";
Java逆序输出问题
题目:任意给定一个正整数,将其形成一个逆序数据并输出
分析:本题有两种做法:
一、将整数的每一个数据提取出来存放到数组中输出,
二、用字符串转化成整数,逆序输出
第一种方法:需要两个类
第一个类:,定义数据属性,实现基本的方法
在写逆序输出的时候要注意以下几点:
1,若原来的整数最后面是0,则在逆序输出的时候第一个数字不能输0--------------如何解决?
当遇到0时则不输出
2,解决第一个问题的基础上,若整数的内部有0,例如302300,内部的也不会输出,-----------------如何解决?
记录每一个数字的下标,输出时,按照下标输出
第二个类:测试类
详细代码
package 逆序输出;
public class NX {
private int n;
public NX(int n) {
this.n = n;
}
public NX() {}
public int getN() {
return n;
}
public void setN(int n) {
this.n = n;
}
public void nixu()
{
int i=0;
int[] a=new int[100];
while(n!=0) {
a[i]=n%10;
i++;
n=n/10;
}
int pos=0;
for(int j=0;j<i;j++)
{
//System.out.println(a[0]);
if(a[j]!=0) {
pos=j;
break;
}
}
for(int j=pos;j<i;j++)
{
System.out.print(a[j]);
}
}
}
package 逆序输出;
public class Main_test {
public static void main(String[] args) {
NX nx=new NX(500400300);
nx.nixu();
}
}
第二种做法:
package 逆序输出;
public class NX1 {
private String string;
public NX1(String string) {
this.string = string;
}
public NX1() {}
public String getString() {
return string;
}
public void setString(String string) {
this.string = string;
}
public void nixu()
{
StringBuffer s=new StringBuffer(string);
int b=Integer.parseInt(s.reverse().toString());//toString 一定不能省略
System.out.println(b);
}
}
package 逆序输出;
public class Main_test1 {
public static void main(String[] args) {
NX nx=new NX(12003400);
nx.nixu();
}
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。