好的,所以我正在制作一个程序,我想为车牌#(数字和字母)输入一个输入,我想要做的是,把输入放在一行,并且能够将输入中的数字和字母分成两个不同的变量,一个是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并将字符保留在字符串板中? 我能做到这一点的方式是什么? 非常感谢任何帮助。
答案 0 :(得分:2)
您通常使用正则表达式来处理这些类型的事情。看看Java正则表达式(http://docs.oracle.com/javase/tutorial/essential/regex/)
答案 1 :(得分:1)
使用此: How to split a string between letters and digits (or between digits and letters)?
就像这样:
licensePlate = "JGY7433";
licensePlateLetters = licensePlate.split("(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)")[0];
licensePlateNumber = Integer.parseInt(licensePlate.split("(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)")[1]);
答案 2 :(得分: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]