相关疑难解决方法(0)

检查String是否表示Java中的整数的最佳方法是什么?

我通常使用以下习惯来检查String是否可以转换为整数.

public boolean isInteger( String input ) {
    try {
        Integer.parseInt( input );
        return true;
    }
    catch( Exception e ) {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

它只是我,还是看起来有点hackish?什么是更好的方式?


看看我的回答(基于CodingWithSpike早期答案基准),看看为什么我改变了我的立场并接受了Jonas Klemming对这个问题的回答.我认为这个原始代码将被大多数人使用,因为它实现起来更快,更易于维护,但是当提供非整数数据时,它会慢一个数量级.

java string int

203
推荐指数
11
解决办法
16万
查看次数

在String中将String数组转换为int数组

我是java编程的新手.我的问题是我有一个字符串数组但是当我试图将它转换为一个int数组时我会继续

java.lang.NumberFormatException
Run Code Online (Sandbox Code Playgroud)

我的代码是

private void processLine(String[] strings) {
    Integer[] intarray=new Integer[strings.length];
    int i=0;
    for(String str:strings){
        intarray[i]=Integer.parseInt(str);//Exception in this line
        i++;
    }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助都会非常感谢!!!

java

37
推荐指数
4
解决办法
16万
查看次数

如何创建正则表达式匹配流?

我试图解析标准输入并提取与特定模式匹配的每个字符串,计算每个匹配的出现次数,并按字母顺序打印结果.这个问题似乎与Streams API很匹配,但是我找不到从Matcher创建匹配流的简洁方法.

我通过在匹配项上实现迭代器并将其包装到Stream中解决了这个问题,但结果不是很易读.如何在不引入其他类的情况下创建正则表达式匹配流?

public class PatternCounter
{
    static private class MatcherIterator implements Iterator<String> {
        private final Matcher matcher;
        public MatcherIterator(Matcher matcher) {
            this.matcher = matcher;
        }
        public boolean hasNext() {
            return matcher.find();
        }
        public String next() {
            return matcher.group(0);
        }
    }

    static public void main(String[] args) throws Throwable {
        Pattern pattern = Pattern.compile("[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)");

        new TreeMap<String, Long>(new BufferedReader(new InputStreamReader(System.in))
            .lines().map(line -> {
                Matcher matcher = pattern.matcher(line);
                return StreamSupport.stream(
                        Spliterators.spliteratorUnknownSize(new MatcherIterator(matcher), Spliterator.ORDERED), false);
            }).reduce(Stream.empty(), Stream::concat).collect(groupingBy(o -> o, counting()))
        ).forEach((k, v) -> { …
Run Code Online (Sandbox Code Playgroud)

java regex java-8 java-stream

24
推荐指数
1
解决办法
2万
查看次数

在java中用多个字符拆分字符串

有一个输入字符串:

String str="(1,6),(2,5),(7,10),(12,20)";
Run Code Online (Sandbox Code Playgroud)

如何拆分字符串以便获得仅包含整数的整数数组?即输出数组应该是:arr={1,6,2,5,7,10,12,20};

java string split replace

1
推荐指数
1
解决办法
239
查看次数

如何在java中将字符串数组转换为int数组

我在java程序中有一个像这样的字符串数组

String results[] = { "2", "1", "5", "1" };
Run Code Online (Sandbox Code Playgroud)

我想将其转换为整数数组,如下所示:

int results[] = { 2, 1, 5, 1 };
Run Code Online (Sandbox Code Playgroud)

最后我想找到该int数组所有元素的总和.

java arrays string int

-2
推荐指数
1
解决办法
9847
查看次数

标签 统计

java ×5

string ×3

int ×2

arrays ×1

java-8 ×1

java-stream ×1

regex ×1

replace ×1

split ×1