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
答案 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)
每件事都有限制,
如果您的num
为0000100001000010000001100000
,则无法在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");