java高级编程高级文本的处理(1)

1 字符编码的了解

1 字符编码(1):
- 字符 0 ,a 我 1 …等
- 计算机只用0和1表示
- ASCII码
-美国信息交换标准代码,鉴定计算机基础
-用一个字节(1 Byte=8 bits)来存储a-z,A-Z,0-9和常用一些符号
-用于显示英语和西欧语言
2 字符编码(2):
- ASCII编码采用1byte,8bits最多256个字节
- ASCII无法适应其他地方,比如汉字的数量有几十万
- 扩展编码:
- ISO8859西欧语言
- GB2132,GBK,GB18030,ASII+中文
- Big5 ASII+繁体中文
- shift_JIS ASCII +日文
-Unicode编码

  unicode是比较重要的所有用代码块来写
      中文编码:
       GB2132:1980年发布,7445个字符,包括拉丁字母,希腊字母,日本及俄语682个符号
       GBK: 1995年发布,包括21886个符号与汉字
       GB18030:70244个汉字和符号
    Unicode(字符集):
       -不断扩充,目标是存储全世界的字符
     编码方案:
       UTF-8 兼容ASCII码,变长(1-4个字节存储字符),经济 方便传输
       UTF-16 用变长2-4字节存储所有字符
       UTF-32 用32个bits存储所有字符

2 java的字符编码和文件的输入输出

//默认字符集为GBK
 charset c =  charset .defaulteCharset();
 //输出所有支出的字符集
SortedMap sm = Charset.availableCharsets();
 Set keyset = sm.keySet();
System.out.println("java支持的所有字符集");
for (String s: keyset){
    System.out.println(s);
}

java国际化编程

1 java是第一个设计成支持国际化语言的编程语言
java.util.ResourceBundle用于加载一个语言_国家语言的包
java.util.local 定义一个语言
2 新建message_zh.properties
重要提醒:
此配置文件中汉字要转为ASII码写进去,或者是读出来的时候进行转码!

public class ByteCode2 {

    public static void main(String[] args) {
        //取得系统默认的国家和语言环境
        Locale loc = Locale.getDefault();
        System.out.println(loc);
        //根据指定语言加载资源文件
        ResourceBundle bundle = ResourceBundle.getBundle("message_zh");

        System.out.println("从资源文件中取得的信息"+bundle.getString("hello"));
    }
}

java高级字符串处理

1 正则表达式的表示
2 其他字符串的操作
-集合与字符串的互转
-字符串转义
-变量名字格式化
-从字符串到输入流
推荐一个学习正则表达式的地方:https://github.com/ziishaned/learn-regex

public class ByteCode3 {
    private static final String REGX = "\\bdog\\b";
    private static final String INPUT = "dog dog ddog";
    public static void main(String[] args) {
        Pattern pattern = Pattern.compile(REGX);

        Matcher matcher = pattern.matcher(INPUT);

        int count = 0;

        while (matcher.find()){
            count++;
            System.out.println(count);
        }

    }
}

替换:

    string str = "abC";(正则表达式)
      Pattern p = Pattern.compile(str);
      Matcher m = p.matcher("要被匹配的字符,例如"abC");
      while(m.find){
           m.replaceAll("abC",“123”);  //将字符串中的abc全部替换成123
         }

你可能感兴趣的:(java高级编程高级文本的处理(1))