国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java中字符串轉整數及MyAtoi方法的實現

java中字符串轉整數及MyAtoi方法的實現

2020-10-05 14:04JAVA之家 Java教程

這篇文章主要介紹了java中字符串轉整數及MyAtoi方法的實現的相關資料,需要的朋友可以參考下

java中字符串轉整數及MyAtoi方法的實現

       該題雖然和我們正常使用的字符串轉整數的API中函數不一致,但是通過增加了很多額外的邊界或者異常處理,可以鍛煉算法思維的敏銳性和處理邊界異常等問題的能力。

java中字符串轉整數及MyAtoi方法的實現

思路:字符串題一般考查的都是邊界條件、特殊情況的處理。所以遇到此題一定要問清楚各種條件下的輸入輸出應該是什么樣的。

這里已知的特殊情況有:

  • 能夠排除首部的空格,從第一個非空字符開始計算
  • 允許數字以正負號(+-)開頭
  • 遇到非法字符便停止轉換,返回當前已經轉換的值,如果開頭就是非法字符則返回0
  • 在轉換結果溢出時返回特定值,這里是最大/最小整數

先來幾組測試用例:

?
1
2
3
4
5
6
7
8
9
"  010"
"  +004500"
" -001+2a42"
"  +0 123"
"-2147483648"
"2147483648"
"  - 321"
"   -11919730356x"
"9223372036854775809"

以上的測試用例對應的正確輸出如下:

?
1
2
3
4
5
6
7
8
9
10
4500
-1
0
-2147483648
2147483647
0
-2147483648
2147483647

Java實現代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public static int myAtoi(String str) {
    if(str==null||str.length()==0)
      return 0;
    char[] array = str.toCharArray();
    long result = 0; // 要返回的結果result
    int count = 0; // 記錄‘+'或者‘-'出現的次數
    int num = 0// 判斷空格出現的位置
    int flag = 1; // 正數還是負數
    for (int i = 0; i < array.length; i++) {
      Character c = array[i];
      if(c>='0'&&c<='9'){
        result = result*10+c-'0';
        // 判斷是否溢出
        if(flag==1&&result>Integer.MAX_VALUE){
          return Integer.MAX_VALUE;
        }else if(flag==-1&&-result<Integer.MIN_VALUE)
          return Integer.MIN_VALUE;
        num++;
      }else if(c==' '&&num==0&&count==0)
        continue;
      else if(c=='+'&&count==0){
        count = 1;
      }
      else if(c=='-'&&count==0){
        flag = -1;
        count = 1;
      }
      else{
        return (int) (flag*result);
         
      }
    }
    return (int) (flag*result);
  }

在上邊的代碼中,for循環遍歷數組中,判斷某個char是否是數字,可以使用Character.isDigit(c)方法,計算result時,可以使用Character.getNumericValue(c)方法來得到某個char類型的數值,總之就是可以很方便的使用Character里邊的靜態方法。

重寫的for循環如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
for (int i = 0; i < array.length; i++) {
      Character c = array[i];
      if(Character.isDigit(c)){
        result = result*10+Character.getNumericValue(c);
        if(flag==1&&result>Integer.MAX_VALUE){
          return Integer.MAX_VALUE;
        }else if(flag==-1&&-result<Integer.MIN_VALUE)
          return Integer.MIN_VALUE;
        num++;
      }else if(Character.isSpaceChar(c)&&num==0&&count==0)
        continue;
      else if(c=='+'&&count==0){
        count = 1;
      }
      else if(c=='-'&&count==0){
        flag = -1;
        count = 1;
      }
      else{
        return (int) (flag*result);
         
      }
    }

        當面試時被問到這個題,我們可以不慌不亂的和面試官親切交談,制定該函數的一些規則,即如何處理異常輸入等,之后,再遍歷數組,根據需求進行相應的異常處理哦~

       感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

原文鏈接:http://blog.csdn.net/qq_25827845/article/details/72353770

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 天堂av在线免费观看 | 亚洲电影一区二区三区 | 欧美午夜精品久久久久久人妖 | 欧美一区久久 | 亚洲激情在线 | 国产精品九九九 | 久久久久国产精品午夜一区 | 精品久久久久久国产 | 欧美天堂一区二区三区 | 亚洲国产精品一区二区三区 | 亚洲欧美精品 | 国产精品免费网址 | 精品国产欧美一区二区 | 在线播放视频一区二区 | 日韩欧美亚洲 | 互换娇妻呻吟hd中文字幕 | 久久久久久国产一级毛片高清版 | 亚洲午夜在线 | 免费av一区二区三区 | 日韩精品在线免费观看 | 亚洲毛片a | 亚洲视频在线观看网址 | www.fefe66.com| 一区二区免费看 | 午夜精品久久久久久久久久久久 | 毛片免费观看 | 久久69精品久久久久久久电影好 | 黄色片视频在线播放 | 中文字幕一区二区三区不卡 | 国产一级纯肉体一级毛片 | 动漫卡通精品一区二区三区介绍 | 男人的天堂在线视频 | 青青在线精品视频 | 亚洲免费在线观看 | 日日干夜夜操 | 亚洲午夜精品视频 | 亚洲一区二区三区在线 | 成人性毛片 | 亚洲 欧美 日韩 在线 | 亚洲免费视频在线 | 国产精品69毛片高清亚洲 |