java - 这是一种安全的编程实践吗?

标签 java string int

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。由于我正在练习编程,所以我真的很想创建一个返回 StringInteger 的方法,但在该方法中我想检测输入是否为 IntegerString

在创建方法之后,我首先尝试了

Scanner scan = new Scanner(tok);
scan.hasNextInt(); 

返回 false 即使 tok 中有 int

我也试过

tok.contains("0,1,2,3,4,5,6,7,8,9"); 

即使 tok 中有 int,它也会返回 false。我还没有研究 char 类型。但我注意到 tok.contains("1"); 返回了 true

我想使用 boolean 结果为 StringInteger 创建单独的处理程序。那么代码到目前为止有效。

现在我的问题是使用像 lastChar(),或者我应该定义两个单独的方法 lastInt()lastStr()

最佳答案

我想知道一个String的值是不是整数(比如"1234"),可以尝试转换String:如果有异常String的值不是整数:

try{
   Integer.parseInt(tok);
   return true;
} catch(NumberFormatException ex) {
   return false;
}

关于java - 这是一种安全的编程实践吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31342448/

相关文章:

java - HTML 中的 Jar 小程序

java - Android 中的 String 有长度限制吗?

linux - 将字符串放入不带转义字符的 curl 命令

c - 为什么直接将值传递给 sizeof 运算符时,数据类型的大小会不同?

java - 显示错误值的 Int 变量 - Android

Java 8编译器插件: How to add super() call in a constructor?

java - Android程序问题,NullPointerExc

java - 在不改变另一个人的类的情况下,我如何要求它使用我的 Scanner 版本(作为内部类埋藏)而不是 java.util.Scanner?

python映射字符串拆分列表

.net - .Net 中有没有办法获取 int 单词的字符串值?