如何找到小于和大于之间的文本,然后去掉 Java 中的 <>?
How to find text between less and greater than, then strip the <> in Java?
我不知道如何找到这些词..例如我有这段文字...
The other day I went to the <location> and bought some <plural-noun> . Afterwards, I went to <location> , but it was very <adjective> so I left quickly and went to <location> .
我不知道要搜索什么 因为当我在 google 上搜索 <
和 >
时,它会被忽略。需要帮助如何获取此字符串。
所以我会得到 <location>
、<plural-noun>
、<location>
、<adjective>
、<location>
我必须使用charAt()
方法。我的尝试:
String string = this.fileName;
for(int i = 0; i < string.length(); i++)
if((string.charAt(i) == '<') && (string.charAt(i) == '>'))
System.println(""); //<-------- IM STUCK HERE
不知道……差不多两天没睡觉了。
我当前的最后一个问题...如何删除显示的每个单词的 <
和 >
?
String string = this.template;
Pattern pattern = Pattern.compile("<.*?>");
Matcher matcher = pattern.matcher(string);
List<String> listMatches = new ArrayList<String>();
while(matcher.find()) {
listMatches.add(matcher.group());
}
// System.out.println(listMatches.size());
int indexNumber = 1;
for(String s : listMatches) {
System.out.println(Integer.toString(indexNumber) + ". " + s);
indexNumber++;
}
您可以使用 Pattern
和 Matcher
类。
- 搜索正则表达式模式
<.*?>
。
- 使用 Matcher 查找模式。
读取整行并将其存储在String line
中。然后,使用:
String line = "The other day I went to the <location> and bought some <plural-noun> . Afterwards, I went to <location> , but it was very <adjective> so I left quickly and went to <location> .";
boolean found = false;
String data[] = new String[20];
int counter = 0;
Arrays.fill(data, "");
for(int i = 0; i < line.length() && counter < 20; i++) {
if(line.charAt(i) == '<')
found = true;
else if(line.charAt(i) == '>' && found) {
found = false;
counter++;
}
else if(found) {
data[counter] += line.charAt(i);
}
}
for(int i = 0; i < counter; i++)
System.out.println("Scanned data #" + (i + 1) + " = " + data[i]);
这里真的有两个问题,所以我只回答最后一个;当你有你想要的 <text>
时,像这样:
String text = "<the_text_you_want>";
text.replace("<","").replace(">","").replace("-"," ");
这将去掉分隔符。
我不知道如何找到这些词..例如我有这段文字...
The other day I went to the <location> and bought some <plural-noun> . Afterwards, I went to <location> , but it was very <adjective> so I left quickly and went to <location> .
我不知道要搜索什么 因为当我在 google 上搜索 <
和 >
时,它会被忽略。需要帮助如何获取此字符串。
所以我会得到 <location>
、<plural-noun>
、<location>
、<adjective>
、<location>
我必须使用charAt()
方法。我的尝试:
String string = this.fileName;
for(int i = 0; i < string.length(); i++)
if((string.charAt(i) == '<') && (string.charAt(i) == '>'))
System.println(""); //<-------- IM STUCK HERE
不知道……差不多两天没睡觉了。
我当前的最后一个问题...如何删除显示的每个单词的 <
和 >
?
String string = this.template;
Pattern pattern = Pattern.compile("<.*?>");
Matcher matcher = pattern.matcher(string);
List<String> listMatches = new ArrayList<String>();
while(matcher.find()) {
listMatches.add(matcher.group());
}
// System.out.println(listMatches.size());
int indexNumber = 1;
for(String s : listMatches) {
System.out.println(Integer.toString(indexNumber) + ". " + s);
indexNumber++;
}
您可以使用 Pattern
和 Matcher
类。
- 搜索正则表达式模式
<.*?>
。 - 使用 Matcher 查找模式。
读取整行并将其存储在String line
中。然后,使用:
String line = "The other day I went to the <location> and bought some <plural-noun> . Afterwards, I went to <location> , but it was very <adjective> so I left quickly and went to <location> .";
boolean found = false;
String data[] = new String[20];
int counter = 0;
Arrays.fill(data, "");
for(int i = 0; i < line.length() && counter < 20; i++) {
if(line.charAt(i) == '<')
found = true;
else if(line.charAt(i) == '>' && found) {
found = false;
counter++;
}
else if(found) {
data[counter] += line.charAt(i);
}
}
for(int i = 0; i < counter; i++)
System.out.println("Scanned data #" + (i + 1) + " = " + data[i]);
这里真的有两个问题,所以我只回答最后一个;当你有你想要的 <text>
时,像这样:
String text = "<the_text_you_want>";
text.replace("<","").replace(">","").replace("-"," ");
这将去掉分隔符。