使用java写一个只获取[]里面数据的字符串
时间: 2023-05-11 18:06:34 浏览: 38
可以使用正则表达式来实现这个功能,以下是示例代码:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String input = "这是一个[示例]字符串,[只获取]括号里的内容。";
Pattern pattern = Pattern.compile("\\[(.*?)\\]");
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
}
}
```
这段代码会输出:
```
示例
只获取
```
相关问题
java代码获取字符串中某个字符串所在的大括号里面的数据
假设你要获取字符串中某个字符串所在的大括号里面的数据,可以使用正则表达式和Java中的Matcher类来实现。下面是一个示例代码:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String input = "{\"name\":\"张三\",\"age\":18,\"address\":{\"province\":\"广东\",\"city\":\"深圳\"}}";
String target = "address";
String regex = "\\{(.*?)\"" + target + "\":(.*?)(\\}|,)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
System.out.println(matcher.group(2));
} else {
System.out.println("未找到目标字符串");
}
}
}
```
在上面的代码中,我们首先定义了一个字符串`input`,它是一个包含嵌套的大括号的JSON格式字符串。我们还定义了一个字符串`target`,它是我们要查找的字符串。
接下来,我们定义了一个正则表达式`regex`,它使用了非贪婪匹配,以确保我们只获取目标字符串所在的最小的大括号内的数据。我们使用了`Pattern`类将正则表达式编译为模式,然后使用`Matcher`类在输入字符串中搜索匹配项。
如果我们找到了目标字符串,我们可以使用`matcher.group(2)`来获取所在大括号内的数据。如果没有找到目标字符串,则输出一条相应的消息。
Java获取字符串中两个加号之前的数据
可以使用indexOf()和substring()方法实现:
```java
String str = "abc+d+ef+gh";
int index = str.indexOf("++");
if (index >= 0) {
String result = str.substring(0, index);
System.out.println(result);
}
```
输出结果为:"abc+d+ef"