java笔记二——字符串

1.在判断两个字符串是否相等时,使用equals(或equalsIgnoreCase),尽量不要使用“==”
2.如果需要用许多小段的字符串构建一个字符串,可以考虑用StringBuilder,既节约时间又节约空间,通过append方法添加需要的内容既节约时间又节约空间,之后还可通过StringBuilder的toString()方法返回一个完整的STRING。
3.输入输出
输入常用:Scanner
Scanner in =new Scanner(System.in);
  System.out.print("What is your name?");
  String name=in.nextLine();
  System.out.print("How old are you?");
  int age=0;
  if(in.hasNextInt()){
   age=in.nextInt();
  }  
  System.out.println("name:"+name+";age:"+age);
JAVA中也有类似C++中按格式输出,printf
System.out.printf("%tc", new Date());关于DATE的格式在P55页有详细介绍。
输出常用:PrintWriter
String strDir=System.getProperty("user.dir");
  String strPath=strDir+"\\5.txt";
  try {
   PrintWriter out=new PrintWriter(strPath);
   out.append("first"+"\t");
   out.append("second");
   out.flush();
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
Scanner的构造函数中的参数可以是文件名,但不能是不存在的文件名,而PrintWriter的构造函数中也可以是文件名,因为是写所以必须是不存在的文件名。
4.FOR循环:
for(int element:arr)
5.可以用label写一个标识,放在循环中可跳出最外围的循环。
比如
read_data:
while(~~~){
      for(~~~){
            if(~~~) 
                  break read_data;——此句就跳出了WHILE循环
}
}
6.数组拷贝
可以通过直接赋值arr1=arr2这样当其中任意一个数组发生改变时,另一个数组也发生相应的改变。
如果不需要连动,可以考虑使用数组的CLONE方法以及ARRAYS类的copyof方法。
7.命令行参数
在MAIN函数中都有一个STRING[]的参数args,我们很少用到,这个参数到底有什么用呢???
if(args[0].equals("liping")){
   System.out.println("first:"+args[0]);
  }
  else if(args[0].equals("lixr")){
   System.out.println("first:"+args[0]);
  }
  for(String s:args){
   System.out.println(s);
  }
对于一般的JAVA程序,我们在命令行执行时都是直接使用java CLASS名,对于以上的MAIN函数,我们可以使用java CLASS名 lixr liping,在结果行就会显示:
first:lixr
lixr
liping
如果我们在IDE里调用上述代码,目前还没找到方法。
8.数组
使用Arrays我们可以实现如下操作:
      binarySearch(byte[] a,byte key)使用二分搜索数组元素是否存在,若存在则返回索引(在此之前最好排序);
      copyOf(copyOfRange)
      equals
      fill(int[] arr,int value)将VALUE赋给数组中的每一个元素(也可是指定的元素)
      sort利用快速排序算法对数组进行排序
      toString返回指定数组内容的字符串表达形式(类似的有deepToString方法)。

你可能感兴趣的:(java)