java string person(id=10, name="张三",age=100),取name的值
时间: 2024-02-11 16:05:47 浏览: 144
要取出Java String对象 "person(id=10, name=\"张三\",age=100)" 中的 name 的值,可以使用正则表达式或者字符串截取的方法。具体步骤如下:
1. 使用正则表达式匹配字符串中 name= 后双引号中的内容,即 "name=\"(.*?)\""。
2. 使用 Matcher 类的 find() 方法查找匹配的字符串。
3. 使用 group() 方法取出第一个括号中匹配的字符串,即为 name 的值。
Java代码示例:
```
String str = "person(id=10, name=\"张三\",age=100)";
Pattern pattern = Pattern.compile("name=\"(.*?)\"");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
String name = matcher.group(1);
System.out.println(name); // 输出 "张三"
}
```
如果不想使用正则表达式,也可以使用字符串截取的方法,具体步骤如下:
1. 使用 indexOf() 方法查找字符串中 name= 的位置,记为 pos1。
2. 使用 indexOf() 方法查找字符串中第一个双引号 " 的位置,记为 pos2。
3. 使用 substring() 方法截取从 pos2+1 开始到下一个双引号 " 的位置,即为 name 的值。
Java代码示例:
```
String str = "person(id=10, name=\"张三\",age=100)";
int pos1 = str.indexOf("name=");
int pos2 = str.indexOf("\"", pos1);
String name = str.substring(pos2 + 1, str.indexOf("\"", pos2 + 1));
System.out.println(name); // 输出 "张三"
```
需要注意的是,上述代码假设字符串中 name= 后面的值不含有双引号,否则会截取错误。如果 name= 后面的值可能含有双引号,建议使用正则表达式或者字符串分割等方法来提取字符串。
阅读全文