-3

さて、私はプログラムを作成していて、ナンバー プレート # (数字と文字) の入力を取りたいのですが、私が探しているのは、入力を 1 行で取り、数字を分離できるようにすることです。入力内の文字は、2 つの異なる変数 (1 つは Int で、もう 1 つは String) です。

public class CarRental {
   public static String model;
   public static String plate;
   public static int platenum;
   public static void main(String[] args){
      Scanner input = new Scanner(System.in);
      System.out.println("Car Model:");
      model = input.nextLine();
      System.out.println("License Plate: ");
      plate = input.nextLine();
        ...

入力からの数値を int に割り当て、文字列プレートに文字を保持したいですか? これを行うにはどうすればよいですか?どんな助けでも大歓迎です。

4

3 に答える 3

2

通常、これらの種類のものには正規表現を使用します。Java 正規表現 (http://docs.oracle.com/javase/tutorial/essential/regex/) をご覧ください。

于 2012-11-30T20:26:52.360 に答える
1

これを使用してください: 文字と数字の間 (または数字と文字の間) で文字列を分割する方法は?

たとえば、次のようにします。

licensePlate = "JGY7433";

licensePlateLetters = licensePlate.split("(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)")[0];
licensePlateNumber = Integer.parseInt(licensePlate.split("(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)")[1]);
于 2012-11-30T21:58:21.687 に答える
0

正規表現を使用した例を次に示します。

String s = "A1B2C3";
List<String> letters = new ArrayList<String>();
List<Integer> numbers = new ArrayList<Integer>();
Pattern pLetters=Pattern.compile("([A-Za-z])"), pNumbers=Pattern.compile("(\\d)");
Matcher mLetters=pLetters.matcher(s), mNumbers=pNumbers.matcher(s);
while (mLetters.find()) { letters.add(mLetters.group(1)); }
while (mNumbers.find()) { numbers.add(Integer.parseInt(mNumbers.group(1))); }
System.out.println("OK: letters=" + letters); // => OK: letters=[A, B, C]
System.out.println("OK: numbers=" + numbers); // => OK: numbers=[1, 2, 3]
于 2012-11-30T20:34:20.190 に答える