2012-11-30 34 views
-3

好吧,所以我正在製作一個程序,我想爲一個牌照#(數字和字母)和我要做的是,將輸入作爲一行,並且能夠將輸入中的數字和字母分隔爲兩個不同的變量,一個是Int和一個String。Java,從字符串中取一個數字,並將它分配給一個單獨的變量 - Java

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並保留字符串中的字符? 我能做到這一點的方式是什麼? 任何幫助,不勝感激。

+2

是否意味着# 「號」?如果是這樣,爲什麼不使用「號碼」?它只有5個字符長,並使您的問題可讀。 –

+0

請給我們一個例子 - 它將更清晰地表明你的輸入看起來像 – amit

+0

並且給出了你期望的輸出例子輸入,因爲那也不清楚。 –

回答

2

你通常使用這些類型的東西的正則表達式。看看Java的正則表達式(http://docs.oracle.com/javase/tutorial/essential/regex/)

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] 
+0

謝謝,它對我來說有點複雜,但是感謝您花時間。 – iSully

相關問題