我正在这里进行赋值工作,其中一部分需要我从字符串中解析整数,该字符串具有由任何其他字符分隔的数字组。 我知道我可以使用包装器类方法Integer.parseInt(string)从仅包含数字的字符串中解析整数,但是在这种情况下我该如何去做? 到目前为止,我已经考虑过对字符串进行线性搜索,并将变量分配给第一个出现数字的索引,最后一个数字之后的索引,并根据这些索引创建一个临时子字符串,从中可以解析int。 这是有效的方法吗? 也许有一个更有效的方法?

===============>>#1 票数:5 已采纳

如果可以是任何字符(一个或多个),则可能会有所帮助:

String[] aarray = str.split("[^\\d]+");

例如:

String str = "12fdvvsd34.;h56s67.45c56";
String[] aarray = str.split("[^\\d]+");

for(int i = 0; i < aarray.length; i++)
    System.out.println(Integer.parseInt(aarray[i]));

输出:

12
34
56
67
45
56

===============>>#2 票数:2

让API来完成这项工作,从而实现以下简单的一线式:

int i = Integer.parseInt(input.replaceAll("\\D", ""));

说明:

===============>>#3 票数:0

您可以使用java.util.String拆分方法如果您有一个String,其子字符串由一个标记分隔:

String data "123.345.55.66";
String [] fields = data.split(".");

如果这不是您想要的,则可以通过逐个字符地遍历String来遍历细节:

for (int i = 0; i < data.size(); ++i) {
    char c = data.charAt(i);
    // manipulate as needed.
}

===============>>#4 票数:0

尝试这个:

Integer findNumber(String s){
 List<String> num = Arrays.asList(s.split("[^0-9]"));
 for(String n : num) if(!n.isEmpty()) return Integer.parseInt(n);
}

第一行将s拆分为与非数字字符匹配的部分。

然后,第二行找到List的第一个非空数字字符串。

  ask by awfulwaffle translate from so

未解决问题?本站智能推荐:

2回复

如何解析包含许多整数的字符串

我正在尝试从xml文档中读取一些int: 那是我的Java代码: 我想将字符串位置解析为2个Integer(4和5),并且我想将字符串向量解析为5个Integer(并将它们放入数组中)。 我该怎么做? 感谢您的时间!
2回复

解析字符串数组以获取java中的整数值

我有一个类似“ 2 = 33 = file”的字符串。 我可以从字符串中得到第一个数字 我如何从字符串中获取值“ 33”。另外,如果我在字符串中输入“ 2 = 3 = file”,我也想获取值“ 3”。 抱歉,这是一个非常简单的问题,或者可能是非常具体的情况。
2回复

多任务:解析字符串中以空格分隔的整数

我的任务有问题。 我的工作是 从文件中获取String (源文件中的一行中的数字除以空格) 用空格分隔该字符串 然后将每个String解析为一个int 最后在它们上使用bubbleSort。 我坚持解析,不知道该怎么做。 代码atm看起来像这
1回复

在Android中解析带有字符和数字的字符串

我的以下字符串包含字符,数字以及其他非数字字符。 我设法替换了非数字字符。 但是我迷失了最后的字符和数字,我是从下面的方法中得到这个字符串的。 我使用此方法删除非数字。 结果为"I7f253e0", "I6fc2699" 。 我该如何解析?
1回复

如何解析多个整数

所以,我想将它们除以解析多个整数,或空间。 假设用户最多只能输入4个数字。 那么如果用户输入例如( 1 2 4 3 )或(1 2 3)如何进行多重检查? 因为检查每个不同的选择是不明智的。 (目前我只检查4个选项1,2,3或4),因为他不应该选择4个以上
3回复

如何在字符串中找到整数值

我有一个字符串,例如"ksl13<br>m4n" ,我想删除所有非数字字符以获取int 134。 Integer.parseInt(s)显然无法正常工作,但不确定如何处理。
3回复

Java中的字符串到32位整数,默认值比异常

我有一个带符号的整数值字符串,其范围可能从“ +2147483650”到“ -9638527412”。 我需要将它们解析为32位整数,这样,当字符串值大于整数容量(2 ^ 31)时,它应该返回最接近的可能整数值。 使用“ Integer.parseInt”会发出出站异常。 例:
3回复

比较字符串和整数(java)

我在进行一些Java编程时遇到了麻烦,我对比较操作数在输入之间的工作方式非常困惑。 我想要的是让我的程序接受输入,分析输入,检查输入是否相等并根据输入显示一条消息。 如何将输入与我设置的option1变量进行比较? 这是一个文件,称为loadfile.java 我有load
4回复

使用指数解析字符串(Java)

我有一个类似于: 7.6E+7的字符串。 我的问题很简单:如何将其转换为相应的数字: 76000000 ? 我已经尝试使用substring来隔离E+7部分,然后解析7部分,然后将小数位移到7以上。有更简单的方法吗? 谢谢!
1回复

从字符串解析int会产生错误的结果

我正在尝试使用parseInt()从String获取一个int ,并且我读到了有关radix因此我将10作为第二个参数传递: 输出实际上是0 。 这里出了什么问题?