最愛Java

          書山有路勤為徑,學海無涯苦作舟

          org.apache.commons.lang.math學習筆記

              在org.apache.commons.lang.math包中,一共有11個類??梢苑殖伤慕M:
              1. 處理分數的Fraction類;
              2.處理數值的NumberUtils和IEEE754rUtils類,這里IEEE745r代表的是IEEE 754的標準,是一種浮點數的處理標準。
              3.處理隨機數的JVMRandom和RandomUtils類。
              4.處理數值范圍的Range, DoubleRange, FloatRange, IntRange, LangRange, NumberRange類。

              Fraction類能很方便地處理分數,并能進行分數的約分,加減乘除和指數運算以及求相對值。如:
              private void FractionDemo() {
                  Fraction fraction 
          = Fraction.getFraction(0.5);
                  System.out.println(fraction.getNumerator());
                  System.out.println(fraction.getDenominator());

                  fraction 
          = Fraction.getFraction("1/2");
                  System.out.println(fraction.doubleValue());

                  fraction 
          = Fraction.getFraction(12);
                  System.out.println(fraction.doubleValue());

                  fraction 
          = Fraction.getFraction(112);
                  System.out.println(fraction.doubleValue());

                  fraction 
          = Fraction.getFraction(24);
                  System.out.println(fraction.doubleValue());
                  fraction 
          = Fraction.getReducedFraction(24);
                  System.out.println(fraction.doubleValue());

                  System.out.println(Fraction.getFraction(
          -12).abs());
                  System.out.println(Fraction.getFraction(
          1-2).abs());
                  System.out.println(Fraction.getFraction(
          12).add(
                          Fraction.getFraction(
          12)));
                  System.out.println(Fraction.getFraction(
          12).subtract(
                          Fraction.getFraction(
          12)));
                  System.out.println(Fraction.getFraction(
          12).multiplyBy(
                          Fraction.getFraction(
          12)));
                  System.out.println(Fraction.getFraction(
          12).divideBy(
                          Fraction.getFraction(
          12)));
                  System.out.println(Fraction.getFraction(
          12).pow(2));
              }

              NumberUtils的功能相對來說就有點雞肋了,他能通過createXXX(String str)創建各種類型的數值,即使你傳入的參數是0X123這樣代表16進制的數,它也能正確解析出來。同時它還具有獲取數組最大最小數的功能。
              private void NumberUtilsDemo() {
                  System.out.println(
          "Is 0x3F a number? " + NumberUtils.isNumber("0x3F"));
                  
          double[] array = 1.03.40.87.14.6 };
                  
          double max = NumberUtils.max(array);
                  
          double min = NumberUtils.min(array);
                  System.out.println(
          "Max of array is: " + max);
                  System.out.println(
          "Min of array is: " + min);
                  System.out.println();
              }

                 JVMRandom繼承了java.util.Random類,其功能和Random差不多,只不過封裝了返回不同數據類型的方法而已。而RandomUtils則把JVMRandom的方法靜態化了。
              private void RandomUtilsDemo() {
                  
          for (int i = 0; i < 5; i++{
                      System.out.println(RandomUtils.nextInt(
          100));
                  }

                  System.out.println();
              }

              Range是一個abstract類,主要處理數值范圍的。DoubleRange, FloatRange, IntRange, LangRange和NumberRange都繼承了Range類,它們差不多,只是處理的數據類型不同而已。所以看一個類的使用方法就等于看了所有類的使用方法。
              private void NumberRangeDemo() {
                  Range normalScoreRange 
          = new DoubleRange(90120);
                  
          double score1 = 102.5;
                  
          double score2 = 79.9;
                  System.out.println(
          "Normal score range is: " + normalScoreRange);
                  System.out.println(
          "Is " + score1 + " a normal score? " + normalScoreRange.containsDouble(score1));
                  System.out.println(
          "Is " + score2 + " a normal score? " + normalScoreRange.containsDouble(score2));
                  System.out.println(normalScoreRange.overlapsRange(
          new IntRange(92,119)));
              }

          posted on 2009-01-08 19:43 Brian 閱讀(1284) 評論(0)  編輯  收藏 所屬分類: Jakarta Commons筆記

          公告


          導航

          <2009年1月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          統計

          常用鏈接

          留言簿(4)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 巴东县| 潼关县| 尉犁县| 台山市| 定西市| 育儿| 鸡泽县| 乌鲁木齐县| 集贤县| 云霄县| 朝阳市| 台南县| 米脂县| 汉川市| 沁水县| 景泰县| 增城市| 杭锦旗| 张家界市| 西乌珠穆沁旗| 元谋县| 大宁县| 泰和县| 自治县| 且末县| 秦皇岛市| 祁阳县| 灵川县| 富平县| 永平县| 巴楚县| 黄陵县| 葵青区| 民乐县| 靖州| 彭山县| 崇明县| 山西省| 那曲县| 阳东县| 灵石县|