给一个字符串数字取整
描述
在本题有一个 HandleAble
接口,里面包含了一个 handle
的抽象方法,需要对传入的 num
字符串进行一定的处理逻辑。
在 Solution
类中包含一个 get
方法,你需要借助匿名内部类的方式,实现 HandleAble
接口的 handle
方法,使其传入任意字符串类型的数字,都能返回一个去除小数点后面位数的整型。
public class Stringnummain {
public static void main(String[] args) {
String str = "1212.12";
int number = new Solutionday4().get(str);
//int number = Integer.parseInt(str);
System.out.println(number);
}
}
public class Solutionday4 {
public int get(String str){
//实现匿名类
HandleAble handleAble = new HandleAble() {
@Override
public int handle(String num) {
// 判断字符串中是否包含小数点
if (num.contains(".")) {
// 若包含 则要进行拆分
String[] split = num.split("\\.");
return Integer.parseInt(split[0]);
} else {
// 否则直接转化成整型返回即可
return Integer.parseInt(num);
}
}
};
return handleAble.handle(str);
}
}
public interface HandleAble {
int handle(String num);//匿名类 是内部类的简化写法
}
split 用法
.和斜杠都是转义字符,所以\.是转义了\\.是转义了\.
使用匿名内部类条件:
必须继承一个父类或实现一个接口。
public class Day14main {
public static void main(String[] args) {
Solutionday14 solution = new Solutionday14("dog");
//返回值是一个接口
handle14 animal = solution.get();
//通过返回的接口调用用的是实现后的接口
animal.eat("rou");
}
}
public class Solutionday14 {
public Solutionday14(String name){
};
//这里的handle14,是负责返回类型
public handle14 get(){
//实现接口
return new handle14() {
@Override
public void eat(String food) {
System.out.println("接口已实现");
}
};
}
}
public interface handle14 {
void eat(String food);
}