所以我正在编写一个程序,但在尝试使用初始化或从文件声明整数以在程序中使用它时遇到了麻烦。该程序如下所示:

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
{


公共静态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();
    }
    }
}


这是我正在使用的文件。

劳拉斯·泰瑞尔5 Club

玛格丽特·泰瑞尔8盒

罗斯林·弗雷2盒

Sansa Stark 2俱乐部

琼恩·雪诺5 Club

Edmure Tully 3盒

Joffrey Baratheon 20法院

斯坦尼斯·巴拉森4俱乐部

Jaime Lannister 2盒

瑟西兰尼斯特1法院

Beric Dondarrion 8法院

Balon Greyjoy 16盒装

欧伦娜·泰瑞尔4法院

梅斯·泰瑞尔5盒装

提利昂·兰尼斯特2俱乐部

Sandor Clegane 2法院

Gregor Clegane 6俱乐部

Samwell Tarly 3俱乐部

彼得·贝利希6院

(我更改了间距以使其看起来像样)

我想做的是使用姓氏后面的数字,以便将该数字乘以某个数字,具体取决于数据提供的座位类型(俱乐部,法院等)。但是,我无法弄清楚如何隔离变量和座位类型以将其用于程序。

程序输出如下:

劳拉斯·泰瑞尔

玛格丽(Margaery Tyrell)

罗斯林·弗雷

珊莎·史塔克(Sansa Stark)

乔恩·雪诺

埃德米尔·塔利(Edmure Tully)

乔佛里·巴拉森

斯坦尼斯·巴拉森

海梅·兰尼斯特(Jaime Lannister)

塞尔塞·兰尼斯特

贝里克·唐达里翁

Balon Greyjoy

奥莲娜·泰瑞尔

梅斯·泰瑞尔

提利昂·兰尼斯特

桑多·克莱根(Sandor Clegane)

格雷戈尔·克莱根(Gregor Clegane)

萨姆威尔·塔利

彼得·贝利什

最佳答案

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

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


正如我想告诉您的那样,这将在String内为您提供数字,它将像您一样仅适用于String。

String不方便,因为"Tyrion Lannister 2 Club and Number 44 "会给您244

关于java - 如何从文件初始化整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23171002/

10-10 12:48