-2
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 的字符串

4

7 回答 7

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);
     } 
于 2012-12-13T05:26:00.993 回答
1

你可能想调查一下Integer.parseInt()

可以在此处找到文档- 只需将您的String作为参数传递,您将获得一个int表示。

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

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

解析 adouble将使用类似的方法 -Double.parseDouble()应该可以解决问题。


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

于 2012-12-13T04:54:07.393 回答
1

看一眼Integer.parseInt()

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

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

0000100001000010000001100000

于 2012-12-13T04:54:15.287 回答
1

每件事都有一个限制,如果你num0000100001000010000001100000,那么就无法将其转换为int. 您必须将其转换为double or float或减少您的, 如果您需要它String,尝试转换intInteger.parseInt(num)抛出您,然后执行此操作, 请参阅原始数据类型限制java.lang.NumberFormatExceptiondoubleDouble.parseDouble(num)

于 2012-12-13T05:12:39.217 回答
0

您想在特定情况下使用的是

Integer.parseInt(num);

如果num是您要转换的字符串。考虑到您也要求转换为双精度,您必须将其转换为

Double.parseDouble(num);

唯一的问题是,如果您仅测试 int 并且用户输入十进制数,则会引发异常。

于 2012-12-13T04:55:36.617 回答
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);
于 2012-12-13T04:57:17.710 回答
0

如果要将有效字符串转换为双精度字符串,一种方法是使用

double value=Double.parseDouble("1000.25");
于 2012-12-13T04:57:31.673 回答