zoukankan      html  css  js  c++  java
  • 数字颠倒

    题目描述:

    输入一个整数,将这个整数以字符串的形式逆序输出

    程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001

    思路1:使用Scanner的next()方法以字符串形式接收从键盘输入的数字;然后把字符串转为字节(字符数组也可以)数组;计算字节数组长度,把最后位置字节放到第一个位置,循环条件是为,length为字节数组长度(length-1)/2;然后把字节数组转为字符串进行输出(若是字符数组则无需转换,直接输出即可)。

    代码1:转为字节数组

     1 import java.util.Scanner;
     2 
     3 public class Inverse1 {
     4 
     5     /**输入一个整数,将这个整数以字符串的形式逆序输出
     6      * @param args
     7      */
     8     public static void main(String[] args) {
     9         Scanner sc =new Scanner(System.in);
    10 //System.out.println("请输入一个整数");
    11         String s=sc.next();
    12         inverse(s);
    13     }
    14     
    15     public static void inverse(String s){
    16         byte[] b=s.getBytes();
    17         int l=b.length;
    18         for(int j=0;j<=(l-1)/2;j++){
    19                 byte temp=b[j];
    20                 b[j]=b[l-1-j];
    21                 b[l-1-j]=temp;
    22             }
    23         String s1= new String(b);
    24         System.out.println(s1);
    25     }
    26     
    27 }

    代码2:转为字符数组

     1 import java.util.Scanner;
     2 
     3 public class Inverse4 {
     4     public static void main(String[] args){
     5         Scanner sc = new Scanner(System.in);
     6         String s = sc.next();
     7         char[] c = s.toCharArray();
     8         int l=c.length;
     9         for(int j=0;j<=(l-1)/2;j++){
    10                 char temp=c[j];
    11                 c[j]=c[l-1-j];
    12                 c[l-1-j]=temp;
    13             }
    14             System.out.print(c);
    15     }
    16 }

    思路2:利用常规方法分别计算出每一位的数字,并把每一位数字存储到整形数组中,然后输出

     1 package com.zbt.huawei;
     2 
     3 import java.util.Scanner;
     4 
     5 public class Inverse2 {
     6 
     7     /**
     8      * @param args
     9      */
    10     public static void main(String[] args) {
    11         Scanner sc = new Scanner(System.in);
    12 // System.out.println("请输入一个整数");
    13         int n = sc.nextInt();
    14         inverse2(n);
    15     }
    16 
    17     public static void inverse2(int n) {
    18         int i=0;
    19         int k=0;
    20         int[] s=new int[100];
    21         if(n==0){
    22             System.out.println(n);
    23         }
    24         while((n/10 !=0) || (n%10 !=0) ){//这里判断条件其实就是n!=0
    25         k=n%10;
    26         s[i]=k;
    27         n=n/10;
    28         i++;
    29         }
    30             
    31         for(int j=0;j<i;j++){
    32             System.out.print(s[j]);
    33         }
    34     }
    35 }

    思路3:利用java的StringBuffer存储输入数字(以字符串形式接收输入的数字),然互利用reverse()方法,直接输出

     1 package com.zbt.huawei;
     2 
     3 import java.util.Scanner;
     4 
     5 public class Inverse3 {
     6 
     7     /**
     8      * @param args
     9      */
    10     public static void main(String[] args) {
    11         // TODO Auto-generated method stub
    12         Scanner sc  = new Scanner(System.in);
    13         String s = sc.next();
    14         StringBuffer sb = new StringBuffer(s);
    15         System.out.println(sb.reverse());
    16         
    17     }
    18     
    19 }
  • 相关阅读:
    不使用spring的情况下用java原生代码操作mongodb数据库的两种方式
    log4j配置输出到多个日志文件
    HIDL概述【转】
    Android HIDL学习(2) ---- HelloWorld【转】
    第2课第7节_Java面向对象编程_内部类_P【学习笔记】
    SDM439平台出现部分机型SD卡不能识别mmc1: error -110 whilst initialising SD card【学习笔记】
    第2课第6节_Java面向对象编程_包和权限_P【学习笔记】
    Android A/B System OTA分析(一)概览【转】
    查看DDR的频率【学习笔记】
    音频参数路径【学习笔记】
  • 原文地址:https://www.cnblogs.com/crazybuddy/p/5303981.html
Copyright © 2011-2022 走看看