-3

好的,所以我正在制作一个程序,我想输入车牌#(数字和字母),我想做的是,在一行中输入,并能够分隔数字并且将输入中的字母转换成两个不同的变量,一个是 Int,一个是 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 回答