pattern

设计模式-3-建造者模式(Builder Pattern)

折月煮酒 提交于 2020-03-02 19:12:15
建造者模式(Builder Pattern) , 将一个复杂对象的构建和它的表示分离,使得同样的创建过程可以创建不同的表示。 在Android 中也是非常的常见的,比如: /** * 给宝贝拨打电话 * * @param no */ private void CallBaby() { new AlertDialog.Builder(getActivity()) .setTitle(R.string.call_baby) .setMessage(R.string.call_baby_tips) .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+babyListBean.getFullPhone())); startActivity(intent); } }) .setNegativeButton(R.string.no, null) .show(); } AlertDialog 的 Builder通过setTitle()

Java正则表达式字符串匹配示例

我的未来我决定 提交于 2020-02-29 23:17:08
一位以前的同事在群里面突然发了个需求,要通过正则表达式来取值。给我发过来一张图, 从图中可以出,需求是,通过下面的正则表达式,取出红色框所标示的内容 开始理解错误,我以为是要取出中间的那些内容,不包括"[标题BEGIN]"和“[标题END]”,于是写了下面的代码: private static void getStr(){ String str="[标题BEGIN]<#list>[@cms_chanel id=70]<li class=\"current\"></li>[/@cms_chanel]</#list>[标题END]"; Pattern p =Pattern.compile("\\[标题BEGIN\\](.*)\\[标题END\\]"); Matcher m =p.matcher(str); ArrayList<String> matches= new ArrayList<String>(); while(m.find()) { matches.add(m.group(1)); } for(String s: matches) { System.out.println("匹配结果:"+s); } } 回过头来一看需求,发现不对,于是再修改,主要是针对pattern进行修改 过程如下(按顺序); 1. Pattern p =Pattern.compile("(\\

Postgresql

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-04 14:03:18
There are three separate approaches to pattern matching provided by PostgreSQL : the traditional SQL LIKE operator, the more recent SIMILAR TO operator (added in SQL:1999), and POSIX-style regular expressions. Aside from the basic "does this string match this pattern?" operators, functions are available to extract or replace matching substrings and to split a string at matching locations. Tip: If you have pattern matching needs that go beyond this, consider writing a user-defined function in Perl or Tcl. 9.7.1. LIKE stringLIKEpattern[ ESCAPEescape-character ]stringNOT LIKEpattern[ ESCAPEescape

.NET设计模式(1):1.1 单例模式(Singleton Pattern)

不打扰是莪最后的温柔 提交于 2019-11-30 09:29:40
#概述 单例模式就是保证在整个应用程序的生命周期中,在任何时刻,被指定的类只有一个实例,并为客户程序提供一个获取该实例的全局访问点。 单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。 意图 保证一个类仅有一个实例,并提供一个该实例的全局访问点。 场景 Windows的Task Manager(任务管理器)就是很典型的单例模式,任何时候只能打开一个窗口。 windows的Recycle Bin(回收站)也是典型的单例应用。在整个系统运行过程中,回收站一直维护着仅有的一个实例。 网站的计数器,一般也是采用单例模式实现,否则难以同步。 应用程序的日志应用,一般都何用单例模式实现,这一般是由于共享的日志文件一直处于打开状态,因为只能有一个实例去操作,否则内容不好追加。 Web应用的配置对象的读取,一般也应用单例模式,这个是由于配置文件是共享的资源。 数据库连接池的设计一般也是采用单例模式,因为数据库连接是一种数据库资源。数据库软件系统中使用数据库连接池,主要是节省打开或者关闭数据库连接所引起的效率损耗,这种效率上的损耗还是非常昂贵的,因为何用单例模式来维护,就可以大大降低这种损耗。

java正则表达式对字符串的操作

瘦欲@ 提交于 2019-11-29 16:09:15
学习java正则表达式的都知道,它的重要性;但同时也了解它的难度和复杂性。所以为了加深我们对它的了解。我举了几个例子: 例子1、 查找以Java开头,任意结尾的字符串 Pattern pattern = Pattern.compile("[Java].*"); Matcher matcher = pattern.matcher("Java不是人"); boolean b= matcher.matches(); //当条件满足时,将返回true,否则返回false System.out.println(b); 例子2、 以多条件分割字符串时 pattern = Pattern.compile("[, |]+"); String[] strs = pattern.split("Java Hello World Java,Hello,,World|Sun"); for (int i=0;i<strs.length;i++) System.out.println(strs[i]); 例子3、 文字替换(首次出现字符) pattern = Pattern.compile("正则表达式"); matcher = pattern.matcher("正则表达式 Hello World,正则表达式 Hello World"); //替换第一个符合正则的数据 System.out.println