您的位置:首页 > 编程语言 > Java开发

Java笔记整理——流程控制和字符串

2015-01-15 23:18 302 查看
2015年1月13日记

1、switch语句中表达式的值必须是整型、字符型或字符串类型;常量1~n也必须是整型、字符型或字符串类型。

2、foreach语句是for语句的特殊简化版本,不能完全取代for语句,但任何foreach语句都可以改写为for语句版本。foreach不是一个关键字,习惯上将这种特殊的for语句格式称为foreach语句。foreach语句在遍历数组等方面为程序员提供了很大方便。其语法如下:
    for(元素变量x : 遍历对象obj){
        引用了x的java语句;
   }
  int arr[] = {7, 10, 11, 12};
  for(int x:arr){
   System.out.println(x);
  }

3、字符串:可以通过如下语法格式来声明字符串变量:String str = [null];

4、在Java语言中将字符串作为对象来管理,因此可以像创建其他对象一样来创建字符串对象。创建对象要使用类的构造方法。String类的常用构造方法如下:
1)String(char a[])
这是用一个字符数组a创建String对象
如:char a[] = {'g', 'o', 'o', 'd'};  String s = new String(a);
该用法等价于String s = new String("good");
2)String(char a[], int offset, int length)
提取字符数组a中的一部分创建一个字符串对象。参数offset表示开始截取字符串的位置,length表示截取字符串的长度。
如:char a[] = {'s', 't', 'u', 'd', 'e', 'n', 't'};  String s = new String(a, 2, 4);
等价于:String s = new String("uden");
3)String(char[] value)
该构造方法可分配一个新的String对象,使其表示字符数组参数中所有元素链接的结果。
如:char a[] = {'s', 't', 'u', 'd', 'e', 'n', 't'};  String s = new String(a);
等价于:String s = new String("student");
4)还可以通过字符串常量的引用赋值给一个字符串变量
如:String str1, str2;  str1 = "We are students";  str2 = "We are students";

5、字符串也可以同其他基本数据类型进行连接。如果将字符串同这些数据类型数据进行连接,会将这些数据直接转换成字符串。
如:static String str1 = "你好";
       public static void main(String[] args){
            int m = 12;
           double n = 11.1;
           System.out.println(m + str1 + n);
      }
在这里需要说明:在这里m和n都不是字符串,当他们与字符串相连时会自动调用toString()方法,将其转换成字符串形式,然后参与连接。
注意:只要“+”运算符的一个操作数是字符串,编译器就会将另一个操作数转换成字符串形式,所以应谨慎地将其他数据类型与字符串相连,以免出现意想不到的结果。

6、获取字符串信息——获取长度
使用String类的length()方法可以获得声明的字符串对象的长度。

7、获取字符串信息——字符串查找
使用indexOf()与lastIndexOf()方法。
1)indexOf(String s)
该方法用于返回参数字符串s在指定字符串中首次出现的索引位置。若没有检索到字符串s,则返回-1。
如:String str = "We are students";  int size = str.indexOf("a");//size=3
2)lastIndexOf(String str)
该方法返回指定字符串最后一次出现的索引位置。若未检索到字符串str,则返回-1。
如:String str = "We are students";  int size = str.indexOf("");//size = 15

8、获取字符串信息——获取指定索引位置的字符
使用charAt()方法可将指定索引处的字符返回
如:String str = "Hello Java";  char ch = str.charAt(2);//ch就是l

9、字符串操作——获取子字符串(字符串截取)
1)QString substring(int beginIndex)
该语法返回的是从指定的索引位置开始截取直到该字符串结尾的子串
如:String str = "Hello World";  String substr = str.substring(3);//substr为lo World
2)QString substring(int beginIndex, int endIndex)
该方法返回的是从字符串某一索引位置开始截取至某一索引位置结束的子串
如:String str = "Hello World";  String substr = str.substring(0, 3);//substr为Hel

10、字符串操作——去除空格
使用trim()方法。如:str.trim();
该方法返回字符串的副本,忽略前导空格和尾部空格。
如:String str2 = " Hello Java ";  System.out.println(str2.trim());//结果为Hello Java

11、字符串操作——字符串替换
replace()方法可实现将指定的字符或字符串替换成新的字符或字符串
String replace(char oldChar, char newChar);
如:String str = "address";  System.out.println(str.replace("a", "A"));//结果为Address
说明:若要替换的字符oldChar在字符串中重复出现多次,replace()方法会将所有的oldChar都替换成newChar。

12、字符串操作——判断字符串的开始与结尾
1)startsWith(String prefix)
该方法用于判断当前字符串对象的前缀是否是参数指定的字符串
2)endsWith(String suffix)
该方法用于判断当前字符串是否是以给定的子字符串结束

13、字符串操作——判断字符串是否相等
1)equals()
如果两个字符串具有相同的字符和长度,返回true
2)equalsIgnoreCase()
使用equals()方法对字符串进行比较时是区分大小写的,而使用equalsIgnoreCase()方法是在忽略了大小写的情况下比较两个字符串是否相等,返回结果为boolean类型

14、字符串操作——按字典顺序比较两个字符串
compareTo()
按字典顺序比较两个字符串,该比较基于字符串中各个字符的Unicode值,按字典顺序将此String对象表示的字符序列与参数字符串所表示的字符序列进行比较。若此String对象在前,则返回负整数;在之后,返回正整数;否则返回0

15、字符串操作——字母大小写转换
使用toLowerCase()和toUpperCase()方法

16、字符串操作——字符串分割
1)split(String sign)
该方法可根据给定的分隔符对字符串进行拆分。
说明:没有统一的对字符进行分割的符号。如果想定义多个分隔符,可使用符号“|”。如,“,|=”表示分隔符为","和"|"。
2)split(String sign, int limit)
该方法可根据给定的分隔符对字符串进行拆分,并限定拆分的次数。

17、格式化字符串
String类的静态format()方法用于创建格式化的字符串。format()的两种重载形式如下:
1)format(String format, Object ... args)
该方法使用指定的格式字符串和参数返回一个格式化字符串,格式化后的新字符串使用本地默认的语言环境
2)format(Local l, String format, Object ... args)

18、字符串生成器
public class Frist {
 public static void main(String[] args)
 {
  String str = "";
  long startTime = System.currentTimeMillis();
  for(int i = 0; i < 100000; i++)
  {
   str += i;
  }
  long endTime = System.currentTimeMillis();
  System.out.println(endTime - startTime);
  StringBuilder strBuilder = new StringBuilder("");
  startTime = System.currentTimeMillis();
  for(int i = 0; i < 100000; i++)
  {
   strBuilder.append(i);
  }
  endTime = System.currentTimeMillis();
  System.out.println(endTime - startTime);
 }
}
输出结果如下:
14539
16
以上程序说明了字符串生成器与字符串操作的效率问题。
如果在程序中频繁的附加字符串,建议使用StringBuilder。新创建的StringBuilder对象初始容量是16个字符,可以自行指定初始长度。如果附加的字符超过可容纳的长度,则StringBuilder对象将自动增加长度以容纳被附加的字符。若要使用StringBuilder最后输出字符串结果,可使用toString()方法。
1)append()方法
通过该方法的多个重载形式,可以实现接受任何类型的数据,如:int,boolean,char,String,double或者另一个字符串生成器
2)insert()方法
通过该方法的多个重载形式,可以实现接受任何类型的数据,如:int,boolean,char,String,double或者另一个字符串生成器
3)delete(int start, int end)方法
移除此序列的子字符串中的字符,该子字符串从start开始,一直到索引end-1处的字符,若不存在这种字符,则一直到序列尾部;若start等于end,则不发生任何更改。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java 读书笔记