【发布时间】:2015-07-10 13:48:44
【问题描述】:
import java.util.*;
class Test{
private int intToken;
public Test(){
intToken = 0;
}
// A method that returns the last character of a String
// This here returns a string regardless of input
public String lastChar(String tok){
String token = String.valueOf(tok);
String strToken = token.substring(token.length()-1);
return strToken;
}
public static void main(String[]args){
Test test = new Test();
Scanner scan = new Scanner(System.in);
System.out.println("Enter a number to get its last number");
String value = scan.nextLine();
System.out.println(test.lastChar(value));
}
}
上述方法lastChar() 的代码适用于Integer 和String。由于我正在练习编程,我真的很想创建一个返回 String 或 Integer 的单一方法,但在该方法中我想检测输入是 Integer 还是 String。
在方法创建之后,我首先尝试了
Scanner scan = new Scanner(tok);
scan.hasNextInt();
即使tok 中有int,也会返回false。
我也试过了
tok.contains("0,1,2,3,4,5,6,7,8,9");
即使tok 中有int,它也返回false。我还没有研究char 类型。但我注意到tok.contains("1"); 返回了true。
我想使用boolean 结果为String 和Integer 创建单独的处理程序。到目前为止,代码有效。
现在我的问题是使用单一方法是否安全或良好
lastChar(),或者我应该定义两个单独的方法lastInt()和lastStr()
【问题讨论】:
-
数字有数字(即一位数字)。在内部,它们不存储在 base-10 中,因此您必须将它们转换为 base-10 才能获得最后一位。
-
我希望我能清楚地理解这意味着什么。但是举个例子希望肯定会增加我的知识。我试图从一堆字符中获取最后一个字符,包括数字、int、控制字符等。