首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Java輕鬆搞定:統計位數與逆序輸出數字,字符串處理比數學運算更優雅

     編輯:關於C語言

題目回顧

輸入一個不超過 5 位的正整數,要求:① 統計位數 ② 逆序輸出各位數字。

思路對比:數學運算 vs 字符串處理

方案核心邏輯優點缺點
數學運算循環 n%10 取末位,n/=10 縮減,計數器++無額外空間,經典教科書做法需處理前導零、負數邊界,代碼較繁瑣
字符串處理(推薦)讀入字符串,toCharArray() 逆序遍歷輸出,長度即位數代碼極簡,天然支持任意長度,無溢出風險極微小內存開銷,可忽略

推薦解法:字符串一行流

package com.qimenguigu;
import java.util.*;

public class Test24 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入一個不大於5位的正整數:");
        String s = sc.nextLine();           // 直接讀字符串
        char[] ss = s.toCharArray();        // 轉字符數組
        int count = 0;
        for (int i = ss.length; i > 0; i--) {
            System.out.print(ss[i-1]);      // 逆序輸出
            count++;
        }
        System.out.println();
        System.out.println("這個數的位數為:" + count);
    }
}

運行示例

請輸入一個不大於5位的正整數:
12345
54321
這個數的位數為:5

進階思考:為什麼字符串法更工程化?

  • 統一性:同一套邏輯無縫支持 5 位、50 位、500 位,無需改動代碼。
  • 健壯性:自動處理前導零(如 "00123" 輸出 "32100",位數 5),無需特判。
  • 擴展性:若後續需求變為「判斷迴文」「統計各數字出現次數」,字符數組處理更直觀。

總結

面試或競賽中,遇到「位數統計、逆序、迴文、數字頻統計」類問題,**首選字符串/字符數組**,碼少、錯少、擴展強。數學運算法雖展示基本功,但工程落地時字符串法才是「正解」。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved