智能化校园:深入探讨云端管理系统设计与实现(一)
智能化校园:深入探讨云端管理系统设计与实现(二)
API(Application Programming Interface,应用程序编程接口)是一些预先定义的接口,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
java常用的包
1.以/*开始,以/结束
2.加以类和方法的开头,用于说明作者,时间,版本,要实现功能和详细描述等信息
3.通过javadoc 工具, 可以轻松将此注释转换为HTML文档说明,学习者可以通过了解API功能。
普通注释
(//或者/* */)注释语句。方便交流,但无法通过工具生成文档。
文档注释
一般写在类,方法开头。写给学习者参考的文档资料
写文档注释
生成javadoc,注意文件路径全部为英文,不然会报错。
项目中,字符串不可避免使用。
字符串是引用类型,但是可以不用new,可以直接创建字符串
String s ="ABC123" ;//String直接创建
String s1 ="ABC123" ;//String直接创建
String S=new String("ABC123");//String 对象创建
//输出同样为ABC123
char[] a = { 'A', 'B', 'C', '1', '2', '3'};
String a = new String(a);
System.out.println( a );
注意
1.java.lang.String 使用了final修饰,不能被继承。
2.String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了,但是字符串引用可以重新赋值。
3.java字符串在内存中采用Unicode编码方式,任何一字符对应两个字节的定长编码。
4.字符串底层封装了字符串数组以及针对字符数组的操作算法。
string1.concat(string2);
String s1="hello";
String s2="world";
s1.concat(s2);
或者使用"+"
"hello"+"world"
注意
String s="ABC123";
String s1="ABC"+"123";
System.out.println(s==s1);//ture
String s2="123";
String s3="ABC";
String s4=s3+s2;
System.out.println(s4==s1);//false;
//编译器的一个优化;
//如果一个计算表达式两边都是字面量时,会直接计算结果,
//然后将结果编译到.class文件中,所以s1在.class文件中为 "ABC123".
一,格式化
1,格式化指令:描述要输出的特殊格式
2,要格式化的值
formact("%,d",2000000);
String s=String.formact("%,d",2000000);
//逗号表示数字以逗号分开
System.out.println(s);//2,000,000
//format()方法第一个参数被称为‘格式化串’,
//他可以带有实际上要这么输出而不用转译的字符,而%符号会被方法其余参数替换掉的位置。
//%表示第二个参数放置的位置,“.2f”表示要使用的格式,其余照常输出。
format("there are %.2f apples",11.0987);
//输出 there are 11.10 apples
3.格式化语法
%,d 表示以十进制整数带有逗号方式来表示。
%.2f 代表小数点后两位的方式来格式化此浮点数
%,.2f 代表整数部分以带有逗号方式来表示,小数部分以后两位来格式化。
4.“格式化说明”的格式
%[argument_index$][flags][width][.precision]conversion
1.argument_index ?于表明参数在参数列表中的位置。
2. flags 特定类型的特定选项,例如数字要加逗号或者正负号。
3.width 最小字符数。
4. .precision 精确度(前面有圆点符号)
5.conversion 一定要指定的类型标识别
format("%,4.2f",36.789);
注意
输出格式化数字可以使用 printf() 和 format() 方法。
String 类使用静态方法 format() 返回一个String 对象而不是 PrintStream 对象。
String 类的静态方法 format() 能用来创建可复用的格式化字符串,而不仅仅是用于一次打印输出。
System.out.printf("浮点型变量的值为 " +
"%f, 整型变量的值为 " +
" %d, 字符串变量的值为 " +
"is %s", 2.123, 3, "hello");
或者
String fs;
fs = String.format("浮点型变量的值为 " +
"%f, 整型变量的值为 " +
" %d, 字符串变量的值为 " +
" %s", 2.123, 3, "hello");
//截取字符串
String substring (int start ,int end);
//String str="think in java"
//传两个参数,含头不含尾,从指定位置开始到指定位置结束。
//指定位置头包含,但尾不包含。
String sub=str.substring(5,8);
System.out.println("sub:"+sub);
//传一个参数 ,从指定位置开始截取到末尾
sub =str.substring(4);
System.out.println("sub:"+sub);
运行结果
String indexOf()方法
int indexOf(String str): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
int indexOf(String str, int fromIndex): 返回从指定位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
String str= "thinking in java";
int index=str.indexOf("in");
System.out.println("index:"+index);
//从指定位置开始找
index =str.indexOf("in",3);
System.out.println("index:"+index);
//查找最后一次出现指定字符串位置
index=str.lastIndexOf("in");
System.out.println("index:"+index);
运行结果
int lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
int lastIndexOf(String str, int fromIndex):返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索,如果此字符串中没有这样的字符,则返回 -1。
String Str = new String("www.baidu.com");
System.out.print("从第10个位置查找字符 u最后出现的位置 :" );
System.out.println(Str.lastIndexOf( 'u', 10 ));
//从第10个位置查找字符 u最后出现的位置 :8
获取域名
//获取域名
Scanner scanner =new Scanner (System .in);
System.out.println("输入一个网址");
String host=scanner.nextLine();
//获取第一个点之后第一个字符的位置
int start =host.indexOf(".")+1;
//获取第二个点的位置
int end =host.indexOf(".",start);
String sub=host.subString(start,end);
System.out.println("域名:"+sub);
charAt() 方法用于返回指定索引处的字符。
索引范围为从 0 到 length() - 1。
String str="thinking in java";
char c=str.charAt(4);
System.out.println(c);//k
检查是否为回文方法
方法1
String info="上海自来水来自海上";
for (int i=0;i<info.length()/2; i++){
if (info.charAt(i)!=info.charAt(info.length()-i-1)){
System.out.println("不是回文");
return;//只能结束返回值为void的方法
}
}
System.out.println("是回文");
方法2
String info="上海自来水来自海上";
for (int i=0;i<info.length()/2; i++){
if (info.charAt(i)!=info.charAt(info.length()-i-1)){
System.out.println("不");
break;
}
}
System.out.println("是回文");
方法3
boolean flag=true;
String info="上海自来水来自海上";
for (int i=0;i<info.length()/2; i++){
if (info.charAt(i)!=info.charAt(info.length()-i-1)){
System.out.println("不是回文");
flag=false;
break;
}
}
if(flag){
System.out.println("是回文");
}
trim() 方法用于删除字符串的头尾空白符。
返回删除头尾空白符的字符串
public String trim()
String Str = new String(" www.baidu.com ");
System.out.print("原始值 :" );
System.out.println( Str );
System.out.print("删除头尾空白 :" );
System.out.println( Str.trim() );
//原始值 : www.baidu.com
//删除头尾空白 :www.baidu.com
用于检测字符串是否以指定的字符串开始或结尾
如果字符串以指定的字符串开始或结尾,则返回 true;否则返回 false。
public boolean startsWith(String str, int toffset)
或
public boolean startsWith(String str)//endsWith()类似
//toffset -- 字符串中开始查找的位置。
String str="aaabbbccc";
System.out.println(str.endsWith("c"));//true
System.out.println(str.startsWith("c"));//false
大小写转换
String str="java"
String upper=str.toUpperCase();
String lower=str.toLowerCase();
String提供了若干个重载的静态方法。
static String valueOf(XXX xxx);
valueOf(boolean b): 返回 boolean 参数的字符串表示形式。.
valueOf(char c): 返回 char 参数的字符串表示形式。
将其他类型转化为字符串,返回其相应的参数类型的表现形式。
double d = 1100.00;
boolean b = true;
long l = 1234567890;
char[] arr = {'b', 'a', 'i', 'd', 'u' };
System.out.println("返回值 : " + String.valueOf(d) );
System.out.println("返回值 : " + String.valueOf(b) );
System.out.println("返回值 : " + String.valueOf(l) );
System.out.println("返回值 : " + String.valueOf(arr) );
//返回值 : 1100.0
//返回值 : true
//返回值 : 1234567890
//返回值 : biadu
int a=1;
String stra=String.valueOf(a);
System.out.println(stra);
System.out.println(stra+1);
double b=1.1;
String strb=String.valueOf(b);
System.out.println(strb);
System.out.println(strb+1);
运行结果
StringBuilder 用于提供修改字符串内容相关方法。
在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象。其内部维护的是一个可变的字符数组,所以修改的对象都是在当前对象内部完成的,当前频繁修改字符串内容是应当是在使用当前类完成的
String s="学好java";
//将String转换为StringBuilder可以使用有参的构造方法,
//StringBuilder也有无参构造方法,默认表示空字符串
StringBuilder builder=new StringBuilder(s);
//从StringBuilder转换为String使用toString方法
s=builder.toString();
//追加字符串
builder.append(",我一定行!");
System.out.println(builder.toString());//学好java,我一定行!
//替换字符串
builder.replace(7,13,"come on");
System.out.println(builder.toString());//学好java,come on
//删除字符串
builder.delete(0,6);
System.out.println(builder.toString());//,come on
//插入字符串
builder.insert(0,"jiayou");
System.out.println(builder.toString());//jiayou,come on
//反转字符串
builder.reverse();
System.out.println(builder.toString());//no emoc,uoyaij
StringBuilder sb = new StringBuilder(10);
sb.append("Runoob..");
System.out.println(sb); //Runoob..
sb.append("!");
System.out.println(sb); //Runoob..!
sb.insert(8, "Java");
System.out.println(sb); //Runoob..Java!
sb.delete(5,8);
System.out.println(sb); //RunooJava!
StringBuffer是线程安全的,同步处理的,性能稍慢
StringBuilder 是非线程安全的,并发处理的,性能稍快
java 的字符串连接的过程是利用StringBuilder实现的。
Srting s="a";
Stirng s1=s+"b"+1;
String s1=new StringBuilder(s).append("b").append(1).toString();