Java函数与字符串
函数
- 概念:实现特定功能的一-段代码,反复使用。
- 语法:
public static vojd函数的名称(){ 函数主体 } 函数主体:程序中出现多次重复的代码应该定义在函数内部。
- 函数的调用:函数名称();
- 注意:当遇到函数调用,会优先执行函数内部代码,执行完毕后程序流程回到调用位置。
- 带有参数的函数语法:
public static void函数名称(形式参数) {//形式参数等同于局部变量的声明
函数主体
}
调用语法:函数名称(实际参数);
注意:调用函数时要保证实际参数列表与形式参数列表顺序,个数,类型一致。
形式参数(形参)
实际参数(实参)
多个形式参数:形式参数列表(形参列表)
多个实际参数:实际参数列表(实参列表)
返回值与返回值类型
public static 返回值类型函数名称(形式参数) {
函数主体
return返回值;
}
调用:
变量=函数();
注意:返回值类型必须和返回值一致。
return的用法
两种情况:
1.应用在返回值类型为void函数中。
语法:return;//表示结束当前函数,直接回到调用位置
2.应用在返回值类型除void以外函数中。
语法:return value;//表示结束当前函数,并伴有一个结果返回到调用位置
函数总结
注意:
1.函数之间并列关系。
2.函数不能嵌套。
3.一个函数只完成一个功能。
好处:
增强可读性 提高复用性 减少代码冗余 提高可维护性 方便分工合作
递归
概念:函数中调用本身的现象。
注意:递归必须有出口条件,否则就是无穷递归(死递归)。
递归次数不能太多,否则就会内存溢出。
字符串
创建字符串:String s=new String(); ///创建一个空字符串
String s=new String(char a[],int offset,int length); ///用一个字符串数组的一部分创建一个字符串
字符串的操作:
(1)字符串的连接:+
当其他数据类型与字符串相连时,会自动转换成字符串类型,再进行连接。
(2)str.length()
(3)str.indexOf(substr) ///返回substr首次在字符串中出现的索引
str.lastIndexOf(substr) ///返回substr最后一次在字符串中出现的索引
(4)str.charAt(int index) ///返回字符串中index处的字符
(5)字符串去除空格:
str.trim() 去除字符串前导、尾部的空格
StringTokenizer(String str,String delim) 采用分隔和追加的方式去除字符串中间的空格 str.replace(String regex,String replacement) ///采用空字符替换空格的方式去除字符串中间的空格
(6) 字符串替换:
str.replace(String regex,String replacement) str.replaceFirst(String regex,String replacement)
(7)判断两字符串是否相等
str.equals(String str2) ///在区分大小写的条件下判断两字符串是否相等 str.equalsIgnoreCase(String str2) /在忽略大小写的条件下判断两字符串是否相等
如果用==来比较两个字符串时,比较的是这两个字符串的位置是否相同。
(8)判断字符串的开始与结尾 str.startsWith(String prefix) ///判断str是否以prefix开头 str.endsWith(String suffix) ///判断str是否以suffix结尾
(9)大小写字母转换 str.toLowerCase() str.toUpperCase()
(10)字符串分割 str.split(String sign) ///根据sign为分隔符对字符串进行分隔,并将分隔结果存放在字符串数组中 str.split(String sign,int limit)
///根据sign为分隔符对字符串进行分隔,分隔份数限制为limit
注:如果分隔符有多个,可用“|”符号隔开,例如:",|="表示分隔符为“,”和“=”
字符串翻转
str.reverse();
字符串的格式化:(主要用于处理时间和日期)format(Stringformat,Object args);
按照format指定的格式对args进行格式化; 正则表达式
字符串生成器:(StringBuilder类)
(1)创建: StringBuilder builder=new StringBuilder("");
(2)builder.append(String str) builder.append(StringBuffer sb) ///向对象builder的后面追加内容
(3)builder.insert(int offset,String str) //向对象builder的offset位置插入字符串str
(4)builder.delete(int start,int end) ///删除[start,end)位置的子字符串)
(5)builder.toString() //转换成字符串