В настоящее время я переношу проект VB в java и столкнулся с проблемой, с которой я застрял.
Я получаю строку, которая выглядит следующим образом:
HOST: xxx.xxx.xxx.xxx
DEFAULT: xxx.xxx.xxx.xxx
OS: LINUX
ID: az150
LIB: eth15
newline в конце каждого выхода, пробел после: "Я хотел бы разбить эти строки и использовать случай переключателя впоследствии. Не уверен, что заказ остается неизменным все время.
корпус коммутатора будет выглядеть примерно так:
switch(aString)
{
case "HOST":
String host = HOST Value (xxx.xxx.xxx.xxx);
do something with it
break;
...
default:
break;
}
благодарю!
Метод String.split()
способен решить проблему и даже не требует регулярного выражения.
Предложите, чтобы у вас была строка типа
String string = "HOST: xxx.xxx.xxx.xxx\n"
+ "DEFAULT: xxx.xxx.xxx.xxx\n"
+ "OS: LINUX\n"
+ "ID: az150\n"
+ "LIB: eth15";
то вы можете получить строку ключа-значения следующим образом
String[] lines = str.split("\n");
для каждой строки в массиве могут быть достигнуты ключ и значение, как
String[] entry = s.split(":");
String key = entry[0];
String value = entry[1].trim(); // omit whitespace
то вы можете поместить пару ключ-значение в любом месте, например Map
, Property
, Config
и т.д. И тогда предложение переключения будет работать хорошо. Вы также можете проверить, пустое ли значение перед его использованием, поскольку значение не содержит ничего.
:\\s+
регулярное выражение.