精华内容
下载资源
问答
  • 1.正则表达式中的圆括号作用是对字符进行分组,并保存匹配的文本。2.圆括号用法I:对字符或元字符进行分组,这样在圆括号内就可以对字符组合使用限定符。eg. 匹配A+一个数字+A+一个数字:(A\d){2}3.圆括号用法II:...

    1.正则表达式中的圆括号的作用是对字符进行分组,并保存匹配的文本。

    2.圆括号用法I:对字符或元字符进行分组,这样在圆括号内就可以对字符组合使用限定符。

    eg. 匹配A+一个数字+A+一个数字:(A\d){2}

    3.圆括号用法II:表示可选择性。

    3.1 从两个直接量中选择一个

    eg. gr(a|e)y匹配gray和grey,该例子还可以使用gr[ae]y,字符类效率更高。

    3.2 从多个直接量中选择

    eg. (Doctor|Dr\.?)匹配Doctor,Dr,Dr.三种情况

    3.3 错误匹配的交替行为,

    使用交替行为时,有时会出现意想不到的错误。

    eg. 用(a|ab)匹配ab时,只能匹配a,但是如果用(ab|a),则可以匹配ab

    4.捕获圆括号:正则表达式中,与位于圆括号之间的模式匹配的内容都会被捕获。

    4.1 当模式中有嵌套的圆括号时,变量的编号会按照圆开括号出现的位置一次进行。

    eg. ([A-Za-z](\d{2}))((-)\d{2})匹配”A22-33”时,匹配情况如下:

    Group 1:   A22

    Group 2:   22

    Group 3:   -33

    Group 4:   -

    4.2 .NET中,可以创建命名的组,语法为:

    (?模式)或(?’组名’模式)

    eg. (?\w(?'Num'\d{2}))((-)\d{2})匹配” A22-33”情况为:

    Group "FirstLetter": A22

    Group "Num":  22

    Group 1:   -33

    Group 2:   -

    4.3 非捕获的圆括号:.NET和JavaScript都提供了非捕获圆括号的功能,即圆括号的内容不作为捕获对象,当圆括号中的内容不是想捕获的对象时,采用非捕获圆括号可以提高匹配效率。语法为:

    (?:the-non-captured-content)

    eg. (\w(?:\d{2}))((?:-)\d{2})匹配” A22-33”情况如下:

    Group 1:   A22

    Group 2:   -33

    注:\d{2}匹配的”22”没有被捕获

    5.反向引用(backreferences)

    语法:.NET和javascript中,表示匹配第一组的变量被指定为”\1”

    能够体现反向引用的便利性的一种情况是找到句子中重复的单词。

    eg. 查找下列句子中重复的单词:

    I think that that is often overdone.

    This sentence contains contains a doubled word or two two.

    我们用([A-Za-z]+) +\1\b来匹配,红色部分为匹配的结果

    在这个匹配模式中([A-Za-z]+)为匹配的第一组变量,后面加一个或多个空格( +)表示单词间隔,

    然后用”\1”来表示第一组匹配的变量(即[A-Za-z]+匹配的内容),最后一个表示单词的结束(\b)

    展开全文
  • 1、没有区分中英文在JAVA语言中(实际上其他语言诸如C也一样),起特殊作用的分号“;”、括号(包括圆括号“()”、中括号“[]”、大括号“{}”),以及双引号 “""”、单引号等,都必须是英文的。若不小心输入为中文的,...

    学习程序设计,最怕的事情可能就是遇到错误却找不到错在哪里。这里列举一下笔者发现的JAVA新人常犯的错误,供目前正在上笔者JAVA课程的学生参考,其他JAVA初学者亦可借鉴。

    1、没有区分中英文

    在JAVA语言中(实际上其他语言诸如C也一样),起特殊作用的分号“;”、括号(包括圆括号“()”、中括号“[]”、大括号“{}”),以及双引号 “""”、单引号等,都必须是英文的。若不小心输入为中文的,就会报语法错误。此类错误对于初学者来说非常隐蔽,常会耗费大量的时间和耐心。以分号为例, 可采用如下方法检测是不是误写为中文的了:按快捷键Ctrl+F,可打开搜索对话框,输入中文的分号,让它搜索,看搜索到的分号是不是应该写为英文的。为 保证能对整个程序文件进行搜索,可在搜索前预先把光标移动到程序的开始处。因为搜索默认情况下是从当前光标处搜索到文件尾,光标之前的内容不会搜索到。或 者使用某些搜索选项,让它搜索完整个文件。分别以EditPlus和Windows的记事本编辑器示例如下:

    Editplus,确认选中红框中的选项。

    133219268.png

    记事本:如下图,默认向下搜索。向下搜索完后,再点击“向上”,让它向上搜索。

    133256429.png

    2、括号、引号等不配对

    在程序中,圆括号(())、方括号([])、大括号({})以及双引号("")和单引号必须成对出现,否则报错。如以下的的错误“进行语法解析时已到达文 件结尾”,即是因为少了一个右大括号。为避免发生此类错误,可先把左右括号/引号写好,然后再往里面添加代码。

    3、缺少大括号

    对于if/else和循环,若只需执行一条语句,可以不用大括号。但是当需要添加语句时,就需要用大括号把多条语句包含起来。这一点容易被忽略,而一旦被 忽略,就是逻辑错误(程序能运行,但结果不对)。排查逻辑错误要比语法错误困难很多,因为编译器不会报错,所以常常会耗费大量时间和耐心。因此,为避免这 类错误,应养成习惯:即使只执行一条语句,也应用大括号包含。

    4、类名/变量名写错或没有区分大小写

    类名应保证正确,变量定义后,再使用此变量也应该保证与定义时的名字一致。 更容易出错的是,JAVA是区分大小写的语言,有人把String写成string,或者同一个变量名,前后使用时大小写不一致,都会报错。因此,当编译 器报“找不到符号”的错误时,就应该根据编译器的错误提示信息仔细检查相关类名/变量名是不是这两方面犯了错。例如,下图的错误分别是把类String写 成了string,以及定义了变量scan,但使用此变量时却写成了sscan。

    133409492.png

    5、公共类名应与文件名同名

    我们一般写的类都是公共的(public),JAVA要求保存公共类的文件的文件名必须与类同名,而且要注意大小写。否则会报错:类XX是公共的,应在名为XX.java的文件中声明。这里的“XX”指代某个类名,以下亦然。

    6、修改后未保存或未重新编译

    发现错误更改后未保存,这时修改并未生效,因此应该首先保存。保存后还应重新编译生成新的字节码文件(.class)文件,因为真正运行的是字节码文件。不重新编译的话,运行的还是旧的字节码文件。

    7、错误:仅当显式请求注释处理时才接受类名称“XX.JAVA”

    这个错误是前一段时间批改学生程序时遇到的,程序本身没有发现任何问题,只是文件名写成了XX.JAVA,一时我也不知道错在哪里。后来把文件后缀 名.JAVA改为.java,就好了。由于笔者写程序时一直把后缀名写为.java,因此一直未遇到这种问题(或者遇到了,但是忘记了)。看到大写的后缀 名后,潜意识里认为后缀名属于Windows的概念,而Windows是不区分大小写的,因此也未在意。但我当时显然忽略了一点,当我们用javac命令 编译程序时,javac是JAVA的东西,它对于将要编译的文件的文件名,是区分大小写的。因此,文件名XX.JAVA与XX.java对它来说,是不一 样的。正如上面的第三条所讲,公共类名应与文件名同名,而且要注意大小写。而如果我们把javac写成JAVAC,则没有问题。因为javac命令是 Windows帮我们调用的,它不区分大小写。

    8、设置classpath环境变量时忘了添加当前目录

    在不使用IDE的情况下,若要引用第三方jar包,需把这些jar包引入到classpath环境变量中。但若设置classpath时,没有包含当前目 录(.),那么即使是在字节码文件所在的目录使用java命令运行此字节码文件,也会报java.lang.NoClassDefFoundError。 这是因为若不设置classpath,则classpath自动包含当前目录;而若设置后,则不再自动包含当前目录,需要我们显式指定包含,这一点与 path环境变量不同。

    展开全文
  • [Java教程]正则表达式小括号的多义性0 2014-04-08 10:00:19小括号在正则表达式这有以下意义限定量词作用的范围限定多选结构的范围为反向引用捕获文本分组捕获只分组不捕获前瞻一、限定量词作用的范围var reg1 = /...

    [Java教程]正则表达式小括号的多义性

    0 2014-04-08 10:00:19

    小括号在正则表达式这有以下意义限定量词作用的范围

    限定多选结构的范围

    为反向引用捕获文本

    分组捕获

    只分组不捕获

    前瞻

    一、限定量词作用的范围var reg1 = /(Matz)?/; // 0或1个Matzvar reg2 = /(Matz)+/; // 1个以上Matzvar reg3 = /(Matz)*/; // 0或多个Matz

    二、限定多选结构的范围var reg = /(Matz|Eich)/reg.test('Matz') // => truereg.test('Eich') // => truereg.test('John') // => false

    三、为反向引用捕获文本var reg = /(boy)\1/ // 相当于 /boyboy/reg.test('boy') // => falsereg.test('boyboy') // => truevar reg /(boy)(girl)\1\2/reg.test('boygirlboygirl') // => true

    四、分组捕获var reg1 = /(\d{3}) (\d{3})/var str = '111 222'str.replace(reg1, '$2 $1') // => '222 111' , 注意这里的$2,$1,存放了匹配的字符串var reg2 = /(\d{3})(\d{4})(\d{4})/var mobile = '13522722724'reg2.test(mobile)RegExp.$1 // => 135RegExp.$2 // => 2272RegExp.$3 // => 2724var reg3 = /(\d{3})(\d{4})(\d{4})/var mobile = '13522722724'mobile.replace(reg3, '$1 $2 $3') // => '135 2272 2724'

    五、只分组不捕获(和 "?:" 一起)var reg = /(?:\d+)/reg.test('13522722724')RegExp.$1 // => '' 不存储匹配的元素

    较长的正则表达式中,反向引用会降低匹配速度,性能降低,不需要反向引用时应使用分组不捕获。

    六、前瞻(lookahead,和 "?=" 一起)

    它告诉正则表达式向前看一些字符但不移动位置,前瞻不匹配任何字符只匹配文本中的特定位置。var reg = /(John) (?=Resig)/reg.test('John') // => falsereg.test('John Backus') // => falsereg.test('John Reisg') // => trueRegExp.$1 // => 'John',注意这里不是 "John Resig"

    本文网址:http://www.shaoqun.com/a/87949.html

    *特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

    正则表达式

    0

    展开全文
  • Java 7增强了try语句的功能——它允许在try关键字后跟一对圆括号,圆括号可以声明,初始化一个或多个资源,此处的资源指得是那些必须在程序结束时必须关闭的资源(比如数据库连接,网络连接等),try语句在该语句...

    先看一下rabbitmq官方实例的代码

    import com.rabbitmq.client.Channel;
    import com.rabbitmq.client.Connection;
    import com.rabbitmq.client.ConnectionFactory;
    
    public class Send {
    
        private final static String QUEUE_NAME = "hello";
    
        public static void main(String[] argv) throws Exception {
            ConnectionFactory factory = new ConnectionFactory();
            factory.setHost("localhost");
            try (Connection connection = factory.newConnection();
                 Channel channel = connection.createChannel()) {
                channel.queueDeclare(QUEUE_NAME, false, false, false, null);
                String message = "Hello World!";
                channel.basicPublish("", QUEUE_NAME, null, message.getBytes("UTF-8"));
                System.out.println(" [x] Sent '" + message + "'");
            }
        }
    }

    那么问题来了,try()中添加了内容是什么意思呢,也就是下面这部分代码

    try (Connection connection = factory.newConnection();
                 Channel channel = connection.createChannel()
    )

    解析原因,同学们,划重点啦,注意看下面

    Java 7增强了try语句的功能——它允许在try关键字后跟一对圆括号,圆括号可以声明,初始化一个或多个资源,此处的资源指得是那些必须在程序结束时必须关闭的资源(比如数据库连接,网络连接等),try语句在该语句结束时自动关闭这些资源。

    为了保证try语句可以正常关闭资源,这些资源实现类必须实现Closeable或AutoCloseable接口,实现这些类就必须实现close方法。
     

    展开全文
  • Java语言中,变量的类型主要有3种:成员...局部变量的作用域与可见性为它所在的花括号内。类的成员变量的作用范围同类的实例化对象的作用范围相同。当类被实例化的时候,成员变量就会在内存中分配空间,并初始化...
  • BufferedWritr br = new BufferedWritr(new ...小括号里面是new FileWriter("c/javatest/a.txt"); 是一个NEW的对象,为什么不能直接把 c/javatest/a.txt 写进去。 API文档我看了,看不懂, 谢谢各位 了。
  • 四、shell 中的条件判断命令...在许多系统上,test 命令与 [ 命令的作用其实是一样的,使用 [ 命令的时候,一般在结尾加上 ] 符号,使代码更具可读性。另外,需要注意一点的是,在使用 [ 命令时,[ 符号与被检查的语...
  • 4种Java代码块的作用讲解时间:2017-06-28来源:华清远见JAVA学院今天华清Java学院编要和大家分享的是Java代码块的作用,代码块是一种常见的代码形式,他用大括号“{}”将多行代码封装在一起,形成一个独立的代码...
  • 1,在java中变量的作用域在花括号之内,用花括号表示,作用域用花括号的位置决定 2,对象的作用java对象不具备和基本类型一样的声明周期,但用new创建一个java对象时,它可以存活于作用域之外,所以假如你采用...
  • java小

    2010-01-17 16:23:00
    1 作用域 java作用域的范围由花括号标示。2关于static 垃圾收集器只知道搜集那些有new运算符分配的内存,不知道如何释放特殊内存。 如果垃圾收集器准备回收对象的内存,它首先调用finalize(),而且只有在下一次...
  • Java小白day04复习

    2018-04-06 23:58:57
    注意事项:⑴创建的多个变量不能重名⑵变量未赋值不可以直接使用⑶变量的作用域:变量定义在哪个大括号{ }内,就只能在哪个大括号内使用.2.数据类型:分为基本数据类型和引用类型基本数据类型:一共有8种整型:byte, short...
  • java语法学习

    2020-07-10 21:17:51
    作用域从变量定义的位置开始,到该变量所在的那对大括号结束; 生命周期: 变量从定义的位置开始就在内存中活了; 变量到达它所在的作用域的时候就在内存中消失了; 数据类型: 1):基本数据类型:byte、short、int...
  • java学习总结

    2016-12-04 10:24:31
     作用域从变量定义的位置开始,到该变量所在的那对大括号结束; 生命周期:  变量从定义的位置开始就在内存中活了;  变量到达它所在的作用域的时候就在内存中消失了 成员变量和局部变
  • Java day4

    2019-12-27 23:49:28
    Java day4 结 选择结构语句 一.if语句 [if的嵌套] 分类:1>if 2>if…else 3>if …else if…else if…else 1>if 1.格式:if(表达式){ 语句; } 注意事项: 1)针对格式1这种情况,语句中的大括号可以省略,...
  • 最后,讨论了优化和命名约定Item 45:最小化局部变量作用作用域:一个花括号{}包裹起来的区域此条例同Item13相似:最小化类和成员变量的访问权限Java允许你在任何地方声明变量,但是最重要的是在首次使用的地方声明...
  • Java数据类型

    2020-12-28 16:02:03
    1.变量的作用域:变量能生效的范围,一般是变量定义所在的代码块(大括号) 2.变量的命名规则 a.一个变量名只能包含字母,数字,下划线 b.数字不能开头 c.英文大写敏感,Num和num是两个不同的变量 注:a.不推荐...
  • 这个bug是在学习内部类的时候,在静态内部类中调用静态资源,出现报错的异常,属于非常基础错误,原因是没有注意小括号作用范围引起的错误, "犯罪现场截图"如下: 报错提示: Syntax error on token “play2”, ...
  • 前言:Java语言使用标识符最为变量、对象的名字,同时提供系列的关键字以实线特别的功能。 一、分隔符 ;,{},[],(),空格,圆点都具有特殊分割的作用。 (一)分号 不赘述,就注意一点:字符串、变量...
  • java基础的一点细节

    2017-10-26 19:50:03
     2、成员变量的有效期在这个类中,局部变量有效期只在属于自己的一对大括号作用域内  3、成员变量存在于堆内存中,随着对象产生而存在,消失而消失。  局部变量存在于栈内存中,随着所属区域的运行而存在,结束...
  • 由常量、变量、运算符、括号组成,按照一定得规则进行运算。 2、类型转换 数据由一种类型转换为另外一种类型 作用:1、节约空间;2、为了满足项目需求 自动转换:由精度低向精度高得转换(byte–》char–》short–》...
  • static作用: 1、修饰函数的局部变量:特点:有默认值0,只执行一次,运行一开始 就开辟了内存,内存放在全局d 2、修饰全局函数和全局变量:特点:只能在本源文件使用 3、修饰类里面的成员变量:特点:和1差不多,...
  • 优先级 :在Java中所有的运算符又18-19个等级,但是优先级最高的是【小括号】,在开发中如果遇见优先级判断,什么都不用想直接加【小括号】。 ☆小括号里面的内容对于小括号外部而言是一个整体是一个【常量】 ☆...
  • 在Python语言中最常见的括号有三种,分别是:小括号()、中括号[]、花括号{};其作用也不相同,分别用来代表不同的Python基本内置数据类型。因博主是java出身,所以会举一些Java的类比。python不像java需要在定义的...
  • http://www.cnblogs.com/wupeiqi/p/5649402.html 五句话搞定JavaScript作用域从JavaScript == pyhon 作用域几乎一致 __ 详解:一、“JavaScript中无块级作用域”在Java或C#中存在块级作用域,即:大括号也是一个作用...
  • * 动态规划在矩阵链相乘的应用,目的求出最小的计算代价,即矩阵的计算顺序,用加小括号表示。 * 主要的计算思想是递归,而且是带备忘录的递归,辅助作用,存放计算结果。 问题描述:当计算一个矩阵链的时候,计算...
  • ”)、逗号(" , ")、圆点(" .")、空格(" ")、花括号(“{ }”)2、标识符:用通俗的话说就是像人名一样,起到一个标识作用。标识符必须以字符、下划线、美元开头,后跟字符、下划线、美元符或数字,长度无限。注...
  • 1 分号 ;...3 括号 — 小括号(),中括号[],大括号{} 4 逗号操作符(,) 1 分号 ; 1.1 分号的作用Java 中,分号代表一个语句的结束 所以,即使分号前面没有任何内容,那么一个分...
  • java 开发 入门

    2012-12-20 22:56:14
    Java初学者必看 Java初阶 一、Java程序框架结构简介 步骤9示意图 1、声明包名,package是声明包的关键字。...字符串由双引号包括起来,并放在一对小括号中。Java规定:每个命令结束时,由有一个分号做标志。
  • Java等语言中存在块级作用域。即:大括号也是一个作用域。补充:ES6中新增了let关键字,用于指定变量属于块级作用域。第二点。 JavaScript采用函数作用域。 在JavaScript中每个函数作为一个作用域,在外部无法...
  • flex中的括号

    千次阅读 2010-08-21 11:59:00
    <br />初学flex时,被里面四处乱飞的括号弄得有点头晕,尤其是一些不同... 仔细翻了翻文档,总结一下,顺便测试下Easy Google Syntax Highlighter插件:小括号( ):nothing new,就两个作用:改变表达式运算

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 213
精华内容 85
关键字:

java小括号作用

java 订阅