我有:
String[] args = s.split(" ");
我把它分成了args:
name:
现在我如何从args[2]
开始获取参数注意,我并不是指{{1}},因为名称可能是第5或第4个arg。
答案 0 :(得分:1)
正则表达式split
会在较大的字符串中成功找到它(没有 String s = "IRON_SWORD 1 nme:&aMagic_Iron_Sword lore:&5Magic|is|amazing sharpness:10 hide_enchants";
Pattern p = Pattern.compile("\\sname:(\\S*)");
Matcher m = p.matcher(s);
if (m.find())
{
String name = m.group(1);
}
调用)。
以下是示例代码:
$('[ng-if*="checkout"]').click();
答案 1 :(得分:1)
您可以使用正则表达式。
Pattern p = Pattern.compile("(?<=\\bname:)\\S+");
Matcher m = p.matcher(s);
while(m.find())
{
System.out.println(m.group());
}
答案 2 :(得分:0)
尝试怎么样:
foreach args as find
{
searched = split (find, ":")
if searched[0] == 'name'
{
result = searched[1]
}
}
我不知道你使用的语言,但我相信你能适应。
答案 3 :(得分:0)
我想到了三种方法:
startsWith()
“name”的元素,然后将其拆分并获取索引为1的元素。String.indexOf()
和String.substring()
确定您正在寻找的内容regex
模式"name:(\\S*) "
并将您想要的数据捕获到第1组这些方法的例子:
public static void main(String[] args) throws Exception {
String query = "IRON_SWORD 1 name:&aMagic_Iron_Sword lore:&5Magic|is|amazing sharpness:10 hide_enchants";
System.out.println(getNameSplit(query));
System.out.println(getNameSubstring(query));
System.out.println(getNameRegex(query));
}
public static String getNameSplit(String query) {
String[] pieces = query.split(" ");
for (String piece : pieces) {
if (piece.startsWith("name")) {
return piece.split(":")[1];
}
}
return null;
}
public static String getNameSubstring(String query) {
int nameIndex = query.indexOf("name:");
int spaceIndexAfterName = query.indexOf(" ", nameIndex);
// +5 to skip name:
return query.substring(nameIndex + 5, spaceIndexAfterName);
}
public static String getNameRegex(String query) {
Matcher matcher = Pattern.compile("name:(\\S*) ").matcher(query);
if (matcher.find()) {
return matcher.group(1);
}
return null;
}
结果:
&aMagic_Iron_Sword
&aMagic_Iron_Sword
&aMagic_Iron_Sword