java - String.indexOf()疑问
ringa_lee
ringa_lee 2017-04-17 17:47:35
0
3
459

先上代码:

package test;

import java.util.Scanner;

public class Char_01 {
    public static final String ENTRY_SPLIT = "" + (char) 1;
    public static final String KEY_VALUE_SPLIT = "" + (char) 2;

    public static void main(String args[]) {
        System.out.println("ENTRY_SPLIT:" + ENTRY_SPLIT + "\nKEY_VALUE_SPLIT:" + KEY_VALUE_SPLIT);
        Scanner scanner = new Scanner(System.in);
        Char_01 _char = new Char_01();
        _char.check(scanner.next());
    }

    public void check(String value) {
        if (-1 != value.indexOf(ENTRY_SPLIT) || -1 != value.indexOf(KEY_VALUE_SPLIT)) {
            throw new IllegalArgumentException("Message的properties不能包含'(char)1' 或 '(char)2'特殊字符");
        }
    }
}

这段代码中的check怎么做到校验特殊字符的?
为什么System.out.println(String.valueOf((char) 1));可以表示特殊字符??还是只是用来校验(char)1和(char)2这两个特殊字符??表示不理解。

ringa_lee
ringa_lee

ringa_lee

全部回覆(3)
左手右手慢动作

這個程式只check了(char) 1和(char) 2的特殊字符而已,對應的就是check ASCII碼的01和02這兩個字符,寫的比較奇怪而已。

巴扎黑

你要對應ASCII表去看,你就明白含義了,這代碼表示存在char 為1或2的特殊字符時,拋異常

左手右手慢动作

(char)1(char)2 對應的字元如下圖:



你可以貼上這兩個字元輸入到控制台呼叫check方法後就會引發異常。
-- 圖片載入不出來好像,貼個圖庫連結吧。
http://img.junbaor.com/20160428DE215D849D9563AB6BED55BC929D1B7D.png

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!