package atwanyi.exer;
public class OverloadExer {
//1.如下的三个方法构成重载
public void moL(int i) {
System.out.println(i * i);
}
public void moL(int i,int j) {
System.out.println(i * j);
}
public void moL(String s) {
System.out.println(s);
}
//2.如下的三个方法构成重载
public int max(int i,int j) {
return(i > j)? i : j;
}
public double max(double d1,double d2) {
return(d1 > d2)? d1 : d2;
}
public double max(double d1,double d2,double d3) {
double max = (d1 > d2)? d1 : d2;
return (max > d3)? max : d3;
}
}
1.String类的相关方法
public class StringTest {
public static void main(String[] args) {
String s1 = "hello,";
String s2 = "world";
String s3 = "WORLD";
//将字符串拼凑
String s = s1.concat(s2);
System.out.println("s=" + s +",长度: " + s.length());
//将s2转换为大写
String s4 = s2.toUpperCase();
//equals判断字符串的值是否相等
if(s4.equals(s3)) {
System.out.println("值相等");
}else {
System.out.println("值不相等");
}
//截取s从第四位开始的子字符串
String subStr = s.substring(3);
System.out.println("子字符串:" +subStr);
}
}
2.String的“+”操作
运算符”+”可直接用来实现字符串的连接,效果等同于concat()方法:
int age = 20;
String s = “He is “+age+” years old.”;
其他类型的数据与字符串进行"+"运算时,将自动转换成字符串
3.StringBuffer类
String类的实例是不可变的对象,一旦被创建就不能修改它的字符串值。 StringBuffer的实例是可变对象,代表可变的字符串。对StringBuffer的字符串进行修改时不会创建新对象
1.String是final类,代表不可变的字符序列。对String对象的字符串值做的任何修改都会生成新的对象
2.StringBuffer是线程安全的可变字符序列,对StringBuffer的内容做的任何修改都不会产生新的对象
3.当需要频繁修改字符串内容时,使用StringBuffer的性能更好
import java.sql.Date;
public class StingBufferDemo {
public static void main(String[] args) {
//创建StringBuffer对象,初始化其内容
StringBuffer bf = new StringBuffer("this is my book");
//添加字符串
bf.append("java");
System.out.println("bf中原始内容:" + bf.toString());
//查找"java"出现的索引
int index = bf.indexOf("java");
System.out.println("java的index=" + index);
//在index处插入"php,"
bf.insert(index,"php,");
System.out.println("插入'php,'后的内容:" + bf.toString());
//将"php"替换为jsp
bf.replace(index, index + 3,"jsp");
System.out.println("将php替换为jsp后的内容:" + bf.toString());
//删除"jsp,"
bf.delete(index,index + 4);
System.out.println("删除'jsp,'后的内容:" + bf.toString());
//反转字符串
StringBuffer rever = bf.reverse();
System.out.println("反转后的内容:" + rever);
}
}
Java在Date类中封装了有关日期和时间的信息
示例:
import java.util.Date;
class DateTest{
public static void main(String[] args) {
Date date=new Date();
System.out.println("当期时间是:"+date);
}
将指定的字符串反转后输出
import java.util.Scanner;
public class StringDemo {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String s = input.nextLine();
System.out.println("反转前:" + s);
String result = StringDemo.reverse(s);
System.out.println("反转后:" + result);
}
public static String reverse(String str) {
String s = "";
//将字符串转换为char数组
char[] arr = str.toCharArray();
//从后往前遍历
for(int i = arr.length -1;i >= 0;i--) {
//从后往前取出每个char并转换为字符串与变量s拼接后保存
s = s.concat(arr[i] + "");
}
return s;
}
}
package atwanyi.java1;
/*
* 可变个数形参的方法
*
* 1.jdk 5.0新增的内容
* 2.具体使用:
* 2.1可变个数形参的格式:数据类型...变量名
* 2.2当调用可变个数形参的方法时,传入的参数个数可以是0个,1个,2个、、、
* 2.3可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载
* 2.4可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载。
* 2.5可变个数形参在方法的形参中,必须声明在末尾
* 2.6可变个数形参在方法的形参中,最多只能声明一个可变形参。
*/
public class MethodTest {
public static void main(String[] args) {
MethodTest test = new MethodTest();
test.show(12);
// test.show("hello");
// test.show("hello","world");
// test.show();
test.show(new String[] {"AA","BB","CC"});
}
public void show(int i) {
}
public void show(String s) {
System.out.println("show(String)");
}
public void show(String...strs) {
for(int i = 0;i < strs.length;i++) {
System.out.println(strs[i]);
}
System.out.println("show(String...strs)");
}
// public void show(String[] strs) {
// }
public void show(String...strs,int i) {
}
}