将字符串转换为int或double?

时间:2012-12-13 04:53:02

标签: java

import java.util.Scanner;

public class test1{
    public static void main(String[] args) {

       java.io.File test2 = new java.io.File("test3.txt");

       try
       {
           Scanner input = new Scanner(test2);
           while (input.hasNext()){
              String num = input.nextLine();
              System.out.println(num);
           }
       }  catch (Exception e){
        System.out.println("could not find file");
       }
    }
}  

我试图想出一种将字符串转换为int的方法。我输入的字符串看起来像0000100001000010000001100000

7 个答案:

答案 0 :(得分:2)

Scanner类具有转换为其他类型的功能,如int,double等

转换为整数

Scanner input = new Scanner(test2);
 while(input.hasNext())
 {
  int num = input.nextInt();
  System.out.println(num);
 } 

转换为Double

 Scanner input = new Scanner(test2);
     while(input.hasNext())
     {
      double num = input.nextDouble();
      System.out.println(num);
     } 

答案 1 :(得分:1)

您可能需要查看Integer.parseInt()

可以找到文档here - 只需将String作为参数传递,即可返回int代表。

在您的情况下,您可能希望像这样使用它:

String num = input.nextLine();
int yourValue = Integer.parseInt(num);

解析double会使用类似的方法 - Double.parseDouble()应该可以做到这一点。


或者,如果您只是为了从文件中读取而计划使用此转换,那么使用input.nextInt();代替input.nextLine();可能适合您!

答案 2 :(得分:1)

查看Integer.parseInt()

String num = input.nextLine();
int numInt = Integer.parseInt(num, 2); 
System.out.println(numInt);

如果这意味着二进制数,则需要使用2作为第二个参数

  

0000100001000010000001100000

答案 3 :(得分:1)

每件事都有限制, 如果您的num0000100001000010000001100000,则无法在int中对其进行转换。您必须在double or float中转换它或减少String,尝试使用int转换Integer.parseInt(num)会引发您java.lang.NumberFormatException 如果您需要double,请执行此操作Double.parseDouble(num) 请参阅原始数据类型limits

答案 4 :(得分:0)

您希望在特定情况下使用的是

Integer.parseInt(num);

如果num是要转换的字符串。考虑到你要求转换为双倍,你将不得不转换为

Double.parseDouble(num);

唯一的问题是如果你只测试int而用户输入一个十进制数字,就会抛出异常。

答案 5 :(得分:0)

试试这个

Scanner input = new Scanner(test2);
while (input.hasNext())
{
    String num = input.nextLine();
    try
    {
        long l = Long.parse(num);
        System.out.println(l);
    }
    catch(Exception ex)
    {
        System.out.println("Input string is not a number");
    }
}

如果你的输入是一个二进制数,并且你想以十进制形式显示它,你可以使用它:

long l = Long.parse(num, 2);

答案 6 :(得分:0)

如果要将有效字符串转换为双精度字符串,则可以使用

double value=Double.parseDouble("1000.25");