现在的位置: 首页 > 综合 > 正文

Java运算符和转义字符

2013年10月01日 ⁄ 综合 ⁄ 共 9042字 ⁄ 字号 评论关闭
转义字符
  1. \n 回车(\u000a)  
  2. \t 水平制表符(\u0009)  
  3. \b 空格(\u0008)  
  4. \r 换行(\u000d)  
  5. \f 换页(\u000c)  
  6. \' 单引号(\u0027)  
  7. \" 双引号(\u0022)  
  8. \\ 反斜杠(\u005c)  
  9. \ddd 三位八进制  
  10. \udddd 四位十六进制 

点的转义:. ==> u002E
美元符号的转义:$ ==> u0024
乘方符号的转义:^ ==> u005E
左大括号的转义:{ ==> u007B
左方括号的转义:[ ==> u005B
左圆括号的转义:( ==> u0028
竖线的转义:| ==> u007C
右圆括号的转义:) ==> u0029
星号的转义:* ==> u002A
加号的转义:+ ==> u002B
问号的转义:? ==> u003F
反斜杠的转义: ==> u005C

其它转义的字符,例如

  1. String sName = "Java转义字符(补遗)";  
  2. sName = sName.replaceFirst("(补遗)","");  
  3. out.println(sName); 

如果你以为会输出“Java转义字符”,那你就错了,事实上输出“Java转义字符()”,我也很奇怪,以为是中英文括号的问题,可是并不是,我不确定是否转义问题,解决方法是

  1. sName = sName.replaceFirst("\\(补遗\\)","");  
  2.                                          
  3. sName = sName.replaceFirst("(补遗)","");  

“(补遗)”被认为是正则表达式,而不是普通的字符串()在正则表达式中被用来标记一个子串 可以使用$1,$2等来取得匹配的字符串“\\(补遗\\)” 首先在java中真正表示的字符串"\(补遗\)"然后该字符串在正则表达式中\又是转义字符

Java运算符    http://www.blogjava.net/handan/archive/2007/05/14/117336.html

        Java语言中的表达式是由运算符与操作数组合而成的,所谓的运算符就是用来做运算的符号。
        在Java中的运算符,基本上可分为算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、转型运算符等。

一、算术运算符
       所谓算术运算符,也就是我们数学中学到的加、减、乘、除等运算。这些操作可以对几个不同类型的数字进行混合运算,为了保证操作的精度,系统在运算的过程中会做相应的转换。
      1、数字精度
       所谓数字精度,也就是系统在做数字之间的算术运算时,为了尽最大可能地保持计算机的准确性,而自动进行相应的转换,将不同的数据类型转变为精度最高的数据类型。规则如下:
      1)当使用运算符把两个操作数结合到一起时,在进行运算前两个操作数会转化成相同的类型。
      2)两个操作数中有一个是double类型的,则另一个将转换成double型。
      3)两个操作数中有一个是float类型的,则另一个将也转换成float型。
      4)两个操作数中有一个是long类型的,则另一个将也转换成long型。
      5)任何其它类型的操作,两个操作数都要转换成int类型。
      2、整数型运算(int型)
       对于int型的相关操作,加、减、乘的结果都是非常容易理解的,重点讲一下除(/)的运算。
       两个整数相除的结果是整数,这一点与数学中是不同的,在Java中,两个整数相除的结果类似于数学中的求模运算。整除的余数是用%表示,例如15 / 2 = 7,而不是7.5,15 % 2 = 1。我们用程序验证一下:

/*两个整数相除及求余数*/

public class Divide
{
   public static void main(String[] args)
   {
      int a = 15;
      int b = 2;
      double c = 2;
      System.out.println(a + "/" + b + "=" + (a / b));
      System.out.println(a + "%"+ b + "=" + (a % b));
      System.out.println(a + "/" + c + "=" + (a / c));
      System.out.println(a + "%" + c + "=" + (a % c));
    }
}

输出结果:
                 15 / 2 = 7
                 15 % 2 = 1
                 15 / 2.0  =  7.5
                 15 % 2.0 = 1.0

        3、自增和自减运算符
        在循环与控制中,我们经常会用到类似于计数器的运算,它们的特征是每次的操作都是加1或减1。在Java中提供了自增、自减运算符,X++使变量X的当前值每次增加1,而X--是自减运算符,每次操作使当前X的值减1。例如:

/*测试自增、自减操作*/

public class SelfAction
{
   public static void main(String[] args)
   {
     int x = 10;
     int a = x+ x++;
     System.out.println("a =" + a);
     System.out.println("x =" + x);
     int b = x + ++x;
     System.out.println("b =" + b);
     System.out.println("x =" + x);
     int c = x + x--;
     System.out.println("c =" + c);
     System.out.println("x =" + x);
     int d = x + --x;
     System.out.println("d =" + d);
     System.out.println("x =" + x);
   }

输出结果:
                 a = 20
                 x = 11
                 b = 23
                 x = 12
                 c = 24
                 x = 11
                 d = 21
                 x = 10

二、关系运算符
        Java具有完美的关系运算符。这些关系运算符基本上同数学中的关系运算符是一致的。“>”大于、“<”小于、“>=”大于等于、“<=”小于等于、“==”等于、“!=”不等于。例如:

/*关系运算符测试*/

public class RelationTest
{
   public static void main(String[] args)
   {
     boolean x, y, z;
     int a = 15;
     int b = 2;
     double c =15;
     x = a > b;  //true;
     y = a < b;  //false;
     z = a != b;  //true;
     System.out.println("x =" + x);
     System.out.println("y =" + y);
     System.out.println("z =" + z);
   }
}
输出结果:
                 x = true
                 y = false
                 z = true

三、逻辑运算符
        在Java语言中有三种逻辑运算符,它们是NOT(非,以符号“!”表示)、AND(与,以符号“&&”表示、)OR(或,以符号“||”表示)。
        1、NOT运算符
         NOT运算符是用来表示相反的意思。
                        NOT逻辑关系值表
                          

A                     !A
true               false
false             true

         2、AND运算符
         AND运算符表示“与”的意思,也就是和的意思。
                       AND逻辑关系值表

A                  B                A&&B
false         false            false
true           false            false
false         true               false
true           true                true

         3、OR运算符
         OR运算符是用来表示“或”就像我们日常生活中理解的一样,两者只要有一个为“真”,结果就为“真”。
                     OR逻辑关系值表

A                                          B                                   A||B
false                                    false                             false
true                                      false                             true
false                                    true                               true
true                                      true                                true

/*逻辑运算符测试*/

public class LogicSign
{
   public static void main(String[] args)
   {
     boolean x, y, z, a, b;
     a = 'a' > 'b';
     b = 'R' != 'r';
     x = !a;
     y = a && b;
     z = a || b;
     System.out.println("x =" + x);
     System.out.println("y =" + y);
     System.out.println("z =" + z);
   }
}
输出结果:
                 x = true
                 y = false
                 z = true

       4、“短路”现象
       在运用逻辑运算符进行相关的操作时,我们会遇到一种很有趣的现象;短路现象。
       对于true && false根据我们的讲述,处理的结果已经是false了,也就是说无论后面是结果是“真”还是“假”,整个语句的结果肯定是false了,所以系统就认为已经没有必要再进行比较下去了。也就不会再执行了,这种理象就是我们所说的短路现象。

四、位运算符
          所有的数据、信息在计算机中都是以二进制形式存在的。我们可以对整数的二进制位进行相关的操作。这就是按位运算符,它主要包括:位的“与”、位的“或”、位的“非”、位的“异或”。
        1)位的“与”,用符号“&”表示,它属于二元运算符。 与位运算值表:

A                                             B                          A&B
1                                            1                                  1
1                                            0                                  0
0                                             1                                 0
0                                              0                                 0

         2)位的“或”用符号“|”表示,它属于二元运算符。。   或位运算值表:

A                                             B                                                 A|B
1                                              1                                                      1
0                                             1                                                       1
1                                             0                                                       1
0                                             0                                                        0

          3)位的“非”,用符号“~”表示,它是一元运算符,只对单个自变量起作用。它的作用是使二进制按位“取反”。 非位运算值表:

A                                          ~ A
1                                             0
0                                              1

           4)位的“异或”,用符号“^”表示,它属于二元运算符。异或位运算值表:

A                                                 B                                                               A^B
1                                                 1                                                               0
0                                                 1                                                               1
1                                                     0                                                             1
0                                                     0                                                             0

/*测试位的四种运算*/
public class BitOperation
{
 public static void main(String[] args)
 {
  int a = 15;
  int b = 2;
  int x = a & b;
  int y = a | b;
  int z = a ^ b;
  System.out.println(a + "&" + b + "=" + x);
  System.out.println(a + "|" + b + "=" + y);
  System.out.println(a + "^" + b + "=" + z);
 }
}
输出结果:
                  15 & 2 = 2
                  15 | 2 = 15
                  15 ^ 2 = 13

五、移位运算符
        移位运算符的面向对象也是二进制的“位”。可以单独用移位运算符来处理int型数据。它主要包括:左移位运算符(<<)、“有符号”右移位运算符(>>)、“无符号”右移运算符(>>>)
        1)左移位运算符
         左移位运算符,用符号“<<”表示。它是将运算符左边的对象向左移运动运算符右边指定的位数(在低位补0)。
        2)“有符号”右移运算符
        “有符号”右移运算符,用符号“>>”表示。它是将运算符左边的运算对象向右移动运算符右侧指定的位数。它使用了“符号扩展”机制,也就是说,如果值为正,在高位补0,若为负,则在高位补1。
        3)“无符号”右移运算符
        “无符号”右移运算符,用符号“>>>”表示。它同“有符号”右移运算符的移动规则是一样的,惟一的区别就是:“无符号”右移运算符,它采用了“零扩展”,也就是说,无论值为正负,都在高位补0。

/*移位运算符测试*/

public class BitMotion
{
   public static void main(String[] args)
   {
     int a = 15;
     int b = 2;
     int x = a << b;
     int y = a >> b;
     int z = a >>> b;
     System.out.println(a + "<<" + b + "=" + x );
     System.out.println(a + ">>" + b + "=" + y);
     System.out.println(a + ">>>" + b + "=" + z);
    }
}
输出结果:
                 15 << 2 =60
                 15 >> 2 = 3
                 15 >>> 2 =3

六、赋值运算符
        赋值运算符是程序中最常用的运算符了,只要有变量的声明,就要有赋值运算。如a = 3;这里的a我们都知道是变量名,根据前面对变量的定义,我们可以知道这里的a实际上就是内存空间的一个名字,它对应的是一段内存空间,一在要在这个空间放入3这个值。这个放入的过程就实现了赋值的过程。
              赋值运算一览表

运算符
一般表示法 Java语言表示法
+=
a = a + b
a += b
-=
a = a - b
a -= b
*=
a = a * b
a *=b
/=
a=a / b
a /= b
%=
a = a % b
a %= b
>>=
a = a >> b
a >>= b
>>>=
a = a >>> b

a >>>= b

七、三元运算符
        三元运算符比较罕见,因为它有三个运算对象,但它也确实属于运算符的一种,因为它最终也是产生一个值。它也可以转化为条件判断语句,只不过这种处理方式更简洁、明了。
        它的运算过程是这样的:
         如果“布尔表达式”的结果是“true”,就返回值0;
         如果“布尔表达式”的结果是“false”,就返回值1;
         它的返回值做为最终结果返回。

八、逗号运算符
        在Java中,逗号运算符的惟一使用场所就是在for循环语句中。

九、字符串运算符
        “+”号这个运算符,在Java中有一项特殊的用法,它不仅起到连接不同的字符串,还有一种隐式的转型功能。

十、转型运算符
        转型运算符可以说是一种特殊的运算符,它是将一种类型的数据或对象,强制转变为另一种类型。

/*强制转型测试*/

public class TypeTran
{
   public static void main(String[] args)
   {
     int x ;
     double y;
     x = (int)22.5 + (int)34.7;  /制转型可能引起精度丢失
     y = (double)x;
     System.out.println("x = " + x);
     System.out.println("y = " + y);
   }
}
输出结果:
                  x = 56
                  y = 56.0
分析:
          可以发现,由于强制转型,使数据精度丢失。系统会忽略强制转型的检查。所以对于强制转型,必须清楚转型是否可行。最后总结一下运算符的优先级

抱歉!评论已关闭.