在控制器中
params.max = Math.min(params?.max?.toInteger() ?: 10, 20)
params.offset = params?.offset?.toInteger() ?: 0
Run Code Online (Sandbox Code Playgroud)
如果您输入以下网址
/books?offset=10&max= //error
/books?offset=10&max=sdf //error
/books?offset=&max=10 //works
/books?offset=adsfa&max=10 //error
java.lang.NumberFormatException: For input string: "asdf"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:449)
at java.lang.Integer.valueOf(Integer.java:554)
Run Code Online (Sandbox Code Playgroud)
是否有一行常规答案来检查url参数中的null / string字符?
我有JavaScript的功能:
function calc(num) {
if (num <= 22) {
return parseInt(num);
} else {
num += '';
var curr = 0;
for (var i = 0; i < num['length']; i++) {
curr += parseInt(num[i]);
};
return curr;
};
};
Run Code Online (Sandbox Code Playgroud)
此函数计算新数字,如:如果我的数字大于22,则此函数返回新数字,它是其子数的总和(例如28> 22 => return(2 + 8)).
此功能在Firefox的伟大工程,但我发现了"南"错误在Internet Explorer与数字比22越大所以这个问题必须在"其他".
怎么了?
所以我有一个带数字输入的简单编辑文本.用户输入他的电话号码,它显然是保存到DB中的目标.现在我每次都这样做
int contactNumber=Integer.parseInt(mContactNumber.getText().toString());
Run Code Online (Sandbox Code Playgroud)
我得到一个错误,因为某些原因它不喜欢数字字符串而引发NumberFormatException.我确保android输入字段中的mContactNumber字段具有
android:input="number"
Run Code Online (Sandbox Code Playgroud)
现在我也试着确定一下
int contactNumber=Integer.parseInt(mContactNumber.getText().toString().trim());
Run Code Online (Sandbox Code Playgroud)
仍然是同样的错误
伙计们有什么想法?
我正在做个人项目.我正在创建一个打卡时钟程序,所以我需要帮助的部分是用户在jTextField中输入uid的地方.因此,我需要检索uid(#######),然后使用sql语句在数据库中搜索该uid.所以这就是我到目前为止所拥有的.问题是jTextField1.getText下面有一个红线,当我运行它时,表示=
"setInt(int,int) in java.sql.PreparedStatement cannot be applied to (int,java.lang.String) pstmt.setInt(1, jTextField1.getText());"
任何帮助表示赞赏.谢谢.
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try{
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
String sql = "SELECT * FROM Students WHERE STUDENTID = ?";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setInt(1, jTextField1.getText()); // Retrieve uid from jTextField
ResultSet rs = pstmt.executeQuery();
while(rs.next()){
String first = rs.getString(2);
String last = rs.getString(3);
String hours = rs.getString(6);
fName.setText(first);
lName.setText(last);
tHours.setText(hours);
}
}
catch(SQLException err){
JOptionPane.showMessageDialog(Student.this, err.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个带有2个值的2D数组,我想用一条小信息打印差异.
var array = [[0,2],[3,4]];
console.log(array[0][1]-array[0][0]) //prints '2'
console.log(array[0][1]-array[0][0] + ' is the number') //prints '2 is the number'
console.log('The number is' + array[0][1]-array[0][0]) //prints 'NaN'
console.log('The number is ' + parseInt(array[0][1]-array[0][0], 10)) //prints 'The number is 2'
Run Code Online (Sandbox Code Playgroud)
为什么我需要在结果之前parseInt()打印一条消息,但是在结果之后打印文本,或者仅仅是结果打印,是否可以?
我正在尝试搜索数组中的第一个空槽.你parseInt()可以引用这个,或者我会用" stobar[b] == null"吗?
int[] stobar = new int[100];
for(int b = 0; b < stobar.length; b++)
{
if(stobar[b] == Integer.parseInt(""))
{
stobar[b] = row;
stobar[b+1] = col;
break;
}
}
Run Code Online (Sandbox Code Playgroud) 嗨,我有这段代码可以手动将String转换为int。
int num = 0;
for(int i = 0; i < length(number); i++) {
num *= 10;
num += number.charAt(i) - '0';
println("i :" + num);
}
Run Code Online (Sandbox Code Playgroud)
为什么我们在末尾减去“ 0”?
我正在尝试使用parseInt()将一些字符串从数组转换为整数.我正在阅读许多单独的文件中的行,如下所示:
car,house,548544587,645871266
Run Code Online (Sandbox Code Playgroud)
我有类似下面的代码:
String [] tokens = line.split(",");
try {
line = line.trim();
int a = Integer.parseInt(tokens[2]);
int b = Integer.parseInt(tokens[3]);
int c = (b - a);
System.out.println(c);
} catch (NumberFormatException e) {
System.out.println(e);
}
Run Code Online (Sandbox Code Playgroud)
但是对于我读到的每一行,这都会失败并出现这样的错误:
java.lang.NumberFormatException: For input string: "548544587"
java.lang.NumberFormatException: For input string: "645871266"
Run Code Online (Sandbox Code Playgroud)
知道我可能会缺少什么吗?
我知道该parseInt方法用于将字符串转换为int,但我不知道如何.我明白,如果你说:
System.out.println(Integer.parseInt("52", 10));
Run Code Online (Sandbox Code Playgroud)
会给你52基数10.我不知道的是,如果你说用10替换基数10,它是如何精确计算的.从一些研究中,我发现有人说你必须使用ASCII值.如果它有帮助,我试图能够单独在纸上解决这个问题,而无需更多代码的工作.
我用 JDK 11.0 编译了以下代码:
import java.util.Scanner;
public class inputWithScanner {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter your name and roll number");
String name = input.next();
Integer rollNumber = Integer.parseInt(input.next());
input.close();
if (name.isEmpty())
System.out.println("oops! You didnt enter your name");
if (rollNumber < 0)
System.out.println("Enter a valid roll number");
System.out.println("Hello "+name+" Roll Number "+rollNumber);
Run Code Online (Sandbox Code Playgroud)
并使用以下输入测试程序(rollNumber 变量的混合输入是有意的):
Enter your name and roll number
Manraj 2018CSE1023
Run Code Online (Sandbox Code Playgroud)
编译器引发异常:NumberFormatException 堆栈跟踪如下:
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at inputWithScanner.main(inputWithScanner.java:7)
Run Code Online (Sandbox Code Playgroud)
问题是:为什么会重复调用 parseInt() …