如何从文件初始化整数

时间:2014-04-19 14:01:00

标签: java file

所以我正在编写一个程序,我在尝试使用初始化或从文件中声明一个整数以便在程序中使用它时遇到了麻烦。这就是程序的样子:

import java.util.Scanner;
import java.io.*;

public class WebberProject1
{
 public static void main(String[] args) 
{
Scanner scanner = new Scanner(new File("portlandvip.txt"));
  String fileName = "portlandvip.txt";

while (scanner.hasNext())
{
 String firstName = scanner.next();
 String lastName = scanner.next();

  System.out.println(" " + firstName + " " + lastName);            
   scanner.nextLine();  
}       
    try {
        File file = new File(fileName);

        String a,b,c,d;
        while (scanner.hasNext()) {
            a = scanner.next();
            b = scanner.next();
            c = scanner.next();
            d = scanner.next();
            int num = Integer.parseInt(c);
            System.out.println(num);
        }
        scanner.close();
    } catch (IOException e) {
        e.printStackTrace();
    } 
 }
 }
 import java.util.Scanner;
 import java.io.*;


public class WebberProject1
{

public static void main(String [] args)抛出IOException   {

Scanner scanner = new Scanner(new File("portlandvip.txt"));


while (scanner.hasNext())
{
String firstName = scanner.next();
String lastName = scanner.next();

System.out.println(" " + firstName + " " + lastName);            
scanner.nextLine();  
}       
    try {
        File file = new File("portland.txt");

        String a,b,c,d;
        while (scanner.hasNext()) {
            a = scanner.next();
            b = scanner.next();
            c = scanner.next();
            d = scanner.next();
            int num = Integer.parseInt(c);
            System.out.println(num);
        }
        scanner.close();
    } catch (IOException e) {
        e.printStackTrace();
    } 
    }
}

这是我正在使用的文件。

Loras Tyrell 5俱乐部

Margaery Tyrell 8 Box

Roslin Frey 2 Box

Sansa Stark 2 Club

Jon Snow 5 Club

Edmure Tully 3 Box

Joffrey Baratheon 20 Court

Stannis Baratheon 4 Club

Jaime Lannister 2 Box

Cersei Lannister 1 Court

Beric Dondarrion 8 Court

Balon Greyjoy 16 Box

Olenna Tyrell 4 Court

梅斯泰瑞尔5盒

Tyrion Lannister 2俱乐部

Sandor Clegane 2 Court

Gregor Clegane 6 Club

Samwell Tarly 3 Club

Petyr Baelish 6 Court

(我更改了间距以使其看起来更漂亮)

我想要做的是使用姓氏后面的数字,以便根据数据给出的座位类型(俱乐部,球场等)将该数字乘以一定数量。但是,我无法弄清楚如何隔离变量和座位类型以将它们用于程序。

这是该计划输出的内容:

Loras Tyrell

Margaery Tyrell

罗斯林弗雷

Sansa Stark

Jon Snow

Edmure Tully

Joffrey Baratheon

Stannis Baratheon

Jaime Lannister

Cersei Lannister

Beric Dondarrion

Balon Greyjoy

Olenna Tyrell

梅斯泰瑞尔

Tyrion Lannister

Sandor Clegane

Gregor Clegane

Samwell Tarly

Petyr Baelish

2 个答案:

答案 0 :(得分:1)

我用于此问题的最方便的方法是将除数字之外的所有字母替换为空白。

String s="Tyrion Lannister 2 Club";
int i=Integer.parseInt(s.replaceAll("[\\D]", ""));

这会给你String内的数字,因为我想告诉你它只对你有的字符串有效。

String "Tyrion Lannister 2 Club and Number 44 "244 {{1}}不方便。

答案 1 :(得分:0)

试试这个:

public class WebberProject1 {
    public static void main(String[] args) {
        String fileName = "portlandvip.txtt";

        try {
            File file = new File(fileName);
            Scanner scanner = new Scanner(file);
            String a,b,c,d;
            while (scanner.hasNext()) {
                a = scanner.next();
                b = scanner.next();
                c = scanner.next();
                d = scanner.next();
                int num = Integer.parseInt(c);
                System.out.println(num);
            }
            scanner.close();
        } catch (IOException e) {
            e.printStackTrace();
        } 
    }
}