gpt4 book ai didi

java - 如何将字符串拆分为整数、符号和字符串,然后存储整数值以用于算术运算

转载 作者:行者123 更新时间:2023-12-02 04:27:21 25 4
gpt4 key购买 nike

我是java新手,我正在尝试将字符串拆分为整数、符号和字符串。我想存储整数并将它们用于算术运算。每次我尝试将 split(numbers) 字符串转换为整数时,我总是收到错误(NumberFormatException)。

package com.company;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
static ArrayList<Integer> numbers;
static String numInt;
static StringBuffer buffer;

static void splitString(String str){
StringBuffer alpha = new StringBuffer(), num = new StringBuffer(), special = new StringBuffer();
String numS = ""; String nume = "";

for(int i=0; i<str.length(); i++) {
if(Character.isDigit(str.charAt(i))) {
nume = numS + str.charAt(i);
} else if(Character.isAlphabetic(str.charAt(i))) {
alpha.append(str.charAt(i));
} else {
special.append(str.charAt(i));
}
}

System.out.println(alpha);
System.out.println(special);
int numInt = Integer.parseInt(nume.trim());

int numIntr = numInt + 47;
System.out.println(numIntr);
}


public static void main(String[] args) {
String str = "thissois8uy293849i0000r";
splitString(str);`enter code here`
}
}

最佳答案

您似乎遇到了问题,首先您的号码没有增加。 nume = numS + str.charAt(i); 需要是 nume = nume + str.charAt(i); 以便将数字添加到字符串中。

第二个问题是在您的示例中,您最终得到的值82938490000大于Integer.MAX_VALUE(2,147,483,647),该值无法存储在int<中。如果将其更改为long,它将正常工作。

    long numInt = Long.parseLong(nume.trim());

long numIntr = numInt + 47;

您可能需要考虑使用可以处理更大值的BigInteger

    BigInteger numInt = new BigInteger(nume.trim());

BigInteger numIntr = numInt.add(BigInteger.valueOf(47));

这个question有关于整数最大值的更多信息

关于java - 如何将字符串拆分为整数、符号和字符串,然后存储整数值以用于算术运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56602378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com