たとえば、次のような文字列があります。
<http://www.w3.org/2000/01/rdf-schema#label> "Telecommunications law"@en <http://en.wikipedia.org/wiki/>
部分文字列を抽出する最も簡単な方法は何ですか:
Telecommunication law
部分文字列にはスペースが含まれていることに注意してください。
Pattern と Matcher を使用できます:
Pattern p = Pattern.compile("\".*\"");
Matcher m = p.matcher(s);
if(m.find()){
String resultString = m.group();
}
あなたの場合、resultString には ["Telecommunications law"] が含まれ、保持したくない場合は二重引用符を削除できます。
String.split()
の文字列"
、および返された配列の2番目の要素を選択します。
String tokens[] = yourString.split("\"");
// tokens[1] will contain Telecommunications law
public static void main(String args[]){
String yourString = "<http://www.w3.org/2000/01/rdf-schema#label> \"Telecommunications law\"@en <http://en.wikipedia.org/wiki/>";
String tokens[] = yourString.split("\"");
for(int i = 0; i < tokens.length; i++){
if(tokens[i].equals("Telecommunications law")){
System.out.println(tokens[i]);
}
}
}
public static void main(String[] args) {
String str = "http://www.w3.org/2000/01/rdf-schema#label \"Telecommunications law\"@en http://en.wikipedia.org/wiki/" ;
String temp = str.substring(str.indexOf('\"')+1, str.indexOf('\"',str.indexOf('\"')+1));
System.out.print(temp);
}
「文字列を抽出する」とはどういう意味ですか?
文字列の最初の出現を取得するには、次のようにします。
int index = string.indexOf("Telecommunications law");
最初の括弧と 2 番目の括弧の間にあるものを取得する最も効率的な方法は、次のとおりです。
final String test="http://www.w3.org/2000/01/rdf-schema#label \"Telecommunications law\"@en http://en.wikipedia.org/wiki/";
final int firstIndex=test.indexOf('\"');
final int lastIndex=test.indexOf('\"',firstIndex+1);
final String result=test.substring(firstIndex+1,lastIndex);
System.out.println(result);