ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java学习笔记09

2021-09-08 07:31:56  阅读:162  来源: 互联网

标签:Java String Locale StringBuffer 09 System 笔记 println input


StringBuffer类

StringBuffer目的是来解决字符串相加时带来的性能问题(常量与变量)

StringBuffer的内部实现采用字符数组,默认数组长度为16,超过数组大小时,动态扩充的算法为 原长*2+2;

String s1 = "a";
String s2 = "b";
StringBuffer sb = new StringBuffer();
sb.append(s1).sppend(s2).append(1);
System.out.println(sb.toString());

StringBuilder类

此类设计用作简易替换为StringBuffer在正在使用由单个线程字符串缓冲区的地方(如通常是这种情况)。 在可能的情况下,建议使用这个类别优先于StringBuffer ,因为它在大多数实现中将更快。

StringBuilder主要的方法包括append,insert方法

StringBuilder不能安全的使用多线程,如果需要同步,建议使用StringBuffer。

程序国际化

Locale类

//构造方法
Locale(String language)
Locale(String language,String country)
//通过静态方法创建locale
getDefault()

ResourceBundle类

国际化的实现核心在于显示的语言上,通常的做法是将其定义成若干个属性文件(文件的后缀是.properties),属性文件中的格式采用 “key=value” 的格式进行操作

getBundle(String baseName)
getBundle(String baseName,Locale locale)
getString(String key)

处理动态文本

如果想要打印这样的信息 "欢迎你,XXX!" 具体的名字不是固定的,那么就要使用动态文本进行程序的处理。

进行动态的文本处理,必须使用java.text.MessageFormat类完成

实例

public class Demo01 {
    public static void main(String[] args) {
        //创建一个本地语言环境对象,该对象会根据参数设置来自动选择语言环境
        Locale locale_CN = new Locale("zh","CN");
        Locale locale_US = new Locale("en","US");
        //获取当前系统默认的语言环境
        Locale locale_default = Locale.getDefault();

        Scanner input = new Scanner(System.in);
        
        //用于绑定属性文件的工具类(参数:属性文件的基本名)
        ResourceBundle r = ResourceBundle.getBundle("com.Akira.I18N.info",locale_US);

        System.out.println(r.getString("system.name"));
        System.out.println(r.getString("input.username"));
        String username = input.nextLine();

        System.out.println(r.getString("input.password"));
        String password = input.nextLine();

        if("admin".equals(username) && "123".equals(password)){
            System.out.println(r.getString("login.success"));
            String welcome = r.getString("welcome");

            //动态文本格式化
            welcome = MessageFormat.format(welcome,username);
            System.out.println(welcome);
        }else{
            System.out.println(r.getString("login.error"));
        }

    }
}
//info_en_US.properties

system.name =EMP Manager System
input.username =Input UserName
input.password =Input PassWord
login.success =Login Success!
login.error = Login Error
welcome = welcome,{0}

标签:Java,String,Locale,StringBuffer,09,System,笔记,println,input
来源: https://www.cnblogs.com/adventurerAkira/p/15240981.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有