java - 将 1 个字符串元素转换为整数

标签 java

编写一个程序,检查字符串数组是否包含有效数字。如果字符串包含“.”,则将其转换为 Double,否则将其转换为 Integer。输入应为字符串数组 { "10.20", "123456",“12.无效”}。

我的问题是 123456 正在更改为 double。我必须将其更改为 int。请帮忙:(

public class Ch7LU3Ex1
{
    public static void main(String[] args)
    {
        String[] str = new String []{"10.20","123456","12.invalid"};
        int i,count=0;
        try
        {
            for(i=0;i<3;i++)
            {
                int l = str[i].length();
                for(int j=0;j<l;j++)
                {
                    if(str[i].charAt(j)=='.')
                    {
                        count++;
                    }
                    else
                    {
                        continue;
                    }
                }
                if(count!=0)
                {
                    double d = Double.parseDouble(str[i]);
                    System.out.println(d);
                }
                else
                {
                    int e = Integer.parseInt(str[i]);
                    System.out.println(e);
                }
            }
        }
        catch(NumberFormatException e)
        {
            System.out.println("Invalid number");
        }
    }
}

最佳答案

if(str[i].indexOf('.') == -1) {
    int e = Integer.parseInt(str[i]);
}
else {
    double d = Double.parseDouble(str[i]);
}

这比所有不需要的循环要优雅得多。祝你好运!

要了解其工作原理,see the String API for indexOf() .

关于java - 将 1 个字符串元素转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14083555/

相关文章:

java - WriteListener (servlet 3.1) 语义

java - 从一个列表中选择另一个列表中的值 HQL

java - Android:点击按钮时的新 View

java - 如何创建一个永远在垂直方向滚动的滚动 Pane ?

java - 按位运算符意外行为

java - 使用 smack API 发送和接收消息

java - ByteBuffer.wrap(byte[]) 会导致长时间运行的应用程序内存泄漏吗?

java - 为什么 Java 没有 REPL?

java - 无法找到属性文件 Java 和 TestNG

java - 如何在类对象属性的 HashMap 上使用可比性