java正则表达式、命令行参数、String常用方法

static int test()     {  
      int x = 1;  
      try  {  
return x;
      }  
      finally  
      {  
          ++x;
      }  
}

解析:return x;与return ;二者都执行finally中的代码,return X;因为返回的变量,最终返回变量的初始值。
X值的变化过程:1->2->1(最终返回值)
注意:try和finally中同时有return,最终finally的返回值会覆盖try中的返回值,即方法最终返回值为finally中的返回值;

命令行传参

方法参数为:String[] args ,具体传的参数在runas->configuration->Arguments窗口->输入参数(多参数用空格分开)

Object 三大继承类体

boolean、number(下面若干常见封装类)、character
包装类
Integer:
构造方法(2):
Integer(int i):把int封装成integer类。
Integer(String s):把string封装成integer类。
属性(4):
MAX_VALUE:整形表示最大范围
MIN_VALUE、SIZE(二进制位数)、TYPE(返回类实例)
方法:
Integer .parseInt(String s):把字符串转换成int型10进制整数。
Integer .toString():返回一个表示该 Integer 值的 String 对象
Integer .valueOf():返回保存指定的 String 的值的 Integer 对象
进制转换
nteger .toBinaryString()
Integer.toOctoberString():8进制
Integer.toHexString():16进制
Float:
带有字母的字符串转换成float,数字后面带f可以正常识别,带其他字母会报数字格式转换异常。如:
“12.89f”—>float java.lang.NumberFormatException:
装箱与拆箱
底层是用valueOf()去实现的,128为分界线。即装箱后比较两个对象的值时小于128为true,否则为false。例如:
Integer i1=127;//装箱 int i3=i1;//拆箱 Integeri2=127; System.out.println(i1==i2);//false
Jdk1.5后可以自动装箱可拆箱
Character
字符编码:
ASCII:只针对键盘字母输入组合 Unicode:ASCII、常见中文,日文等…I18N(国家化)
UTF-8:目前通用的一套编码。
GBK指的是中文或者英文(国标),包含简体和繁体
GB2312:简体中文
Character常用方法:
1.charValue():把character转换成基本char型。例如:Character c1=’s’ c1.charValue();
2. isDigit(char ch)、isLetter():是否字母、isLowCase()、isUpperCase(charch)
3.toLowerCase()、toUpperCase() case:实例
Boolean: 把字符串(“true”或者”false”)转换成boolean Boolean.parseBoolean(“true”)//注意字符串取值(true和false)

String

经典面试题:

String s1=”abc”;  //赋值方式1   
String s4=”abc”;  
String s2=new String(“abc”); //赋值方式2     
char c[]={‘a’,’b’,’c’};  
String s3=new String(c); //赋值方式3
String s5="a"+"bc";   
String s6="a";   
Strings7=s6+"bc";    
System.out.println(s1.equals(s7));

总结:
注意:==:基本数据类型:比较的是值;引用数据类:比较的是地址。
大招:string会在内存方法区开辟空间存储实际的值,类似于static。而成员变量的引用存在于堆中,局部变量的引用存在于栈中。

1.String s1=”abc”; //和静态属性一样,在编译过后运行之前在方法区的常量池中开辟空间存储“abc”。
2.S4先会在常量池寻找是否已经有“abc”存在。若不存在再创建。
3.String s2=new String(“abc”):创建1个或者2个对象。
解析:
1.new肯定创建一个对象,->2.同在执行构造方法的时候去常量池判断是否存在“abc”;
4.String s5=”a”+”bc”; s5==s1:true
解析:1.a和bc属于常量区不同的空间。当把结果“abc”赋值给s5时常量区已经有s1的“abc”,故相等。
5. String s7=s6+”bc”; 变量(s6)与字符串相加,地址肯定不同(在栈中)。
6. String中的length()效果等同于数组中的length属性。

字符串常用方法

1.char Chart chartAt(intindex): 返回指定索引处的char 值 str.chartAt()
2.length():string长度
3.concat():拼接到字符串尾部
4.contains(CharSquence S ): CharSquence:接口,只要是其子类都可以传 (向上转型)
5.endWith(参数):判断是否以参数结尾
6.startsWith(参数)
7.equals():判断字符串的内容是否相同
8.getBytes():得到string的byte数组
9.indexof() :字符在字符串中第一次出现的位置【) intindex=path.indexOf(“/”,path.indexOf(“/”)+1); 找不到返回-1
10.lastIndextof()
11.subString(beginIndex,endIndex);【)一般和indexOf配合使用
12.trim:去除整体字符串前后空格,字符串中间的不能替换
13.replace(oldchar newchar):替换和trim()连用
14.replaceAll()
15.boolean matches(正则)

正则表达式

一位一位来匹配以“^”开始正则表达式,以“$”结束正则表达式。
^abc]:^也可表示非,除了abc的其它字符
任意字符 \d:[0-9] digit
\w:字母和数字0-9A-Za-z word
\s:空格
注意:以上三个单词的范围大写的字母表“非”
\D:表示非0-9,即[^0-9]。
量词: X?:X表示次数 0次或者1次 X +:至少一次 X*:至少“0”次 X{5,8}:范围 X{5,}至少5次

你可能感兴趣的:(Java,正则表达式,string)