Java 如何使用StringTokenizer在字符串中获取特定值
Java 如何使用StringTokenizer在字符串中获取特定值,java,string,stringtokenizer,Java,String,Stringtokenizer,如你所见,我试图在v=“St.Croix Gate”/>中获取字符串,但由于标记器为每个空格添加了一个新的标记,我只获取输出“Gate”这对我来说很有效: String element = "<tag k=\"addr:street\" v=\"St. Croix gate\"/>"; String searchAtt = "v"; StringTokenizer itr = new StringTokenizer(element); while (i
如你所见,我试图在v=“St.Croix Gate”/>中获取字符串,但由于标记器为每个空格添加了一个新的标记,我只获取输出“Gate”这对我来说很有效:
String element = "<tag k=\"addr:street\" v=\"St. Croix gate\"/>";
String searchAtt = "v";
StringTokenizer itr = new StringTokenizer(element);
while (itr.hasMoreTokens()) {
// split by '='
String s = itr.nextToken("=");
// is splited by '=' so the last word is the attribute name
if (s.endsWith(searchAtt)) {
// next token is '=' then comes the value of the attribute
// split it by \"
itr.nextToken("\"");
// next token will be the content
String content = itr.nextToken();
System.out.println("Searched attribute: " + content);
}
}
String元素=”;
字符串searchAtt=“v”;
StringTokenizer itr=新的StringTokenizer(元素);
而(itr.hasMoreTokens()){
//被“=”分割
字符串s=itr.nextToken(“=”);
//被“=”分割,因此最后一个单词是属性名
如果(s.endsWith(searchAtt)){
//下一个标记是“=”然后是属性的值
//将其拆分为\“
itr.nextToken(“\”);
//下一个标记将是内容
字符串内容=itr.nextToken();
System.out.println(“搜索属性:+内容”);
}
}
这对我很有用:
String element = "<tag k=\"addr:street\" v=\"St. Croix gate\"/>";
String searchAtt = "v";
StringTokenizer itr = new StringTokenizer(element);
while (itr.hasMoreTokens()) {
// split by '='
String s = itr.nextToken("=");
// is splited by '=' so the last word is the attribute name
if (s.endsWith(searchAtt)) {
// next token is '=' then comes the value of the attribute
// split it by \"
itr.nextToken("\"");
// next token will be the content
String content = itr.nextToken();
System.out.println("Searched attribute: " + content);
}
}
String元素=”;
字符串searchAtt=“v”;
StringTokenizer itr=新的StringTokenizer(元素);
而(itr.hasMoreTokens()){
//被“=”分割
字符串s=itr.nextToken(“=”);
//被“=”分割,因此最后一个单词是属性名
如果(s.endsWith(searchAtt)){
//下一个标记是“=”然后是属性的值
//将其拆分为\“
itr.nextToken(“\”);
//下一个标记将是内容
字符串内容=itr.nextToken();
System.out.println(“搜索属性:+内容”);
}
}
首先,请允许我说,由于多种原因,在没有xml解析器的情况下解析xml是一个非常糟糕的主意
但是,如果您只想使用字符串操作来提取v
的元素,这里有一种方法:
String s = "<tag k=\"addr:street\" v=\"St. Croix gate\"/>";
int vIndex = s.indexOf("v=\"");
int vendQuotesIndex = s.indexOf("\"", vIndex + 3);
System.out.println(s.substring(vIndex + 3, vendQuotesIndex)); // Prints "St. Croix gate"
String s=”“;
int-vIndex=s.indexOf(“v=\”);
int vendQuotesIndex=s.indexOf(“\”,vIndex+3);
System.out.println(s.substring(vIndex+3,vendQuotesIndex));//打印“圣克罗伊门”
首先,请允许我说,由于多种原因,在没有xml解析器的情况下解析xml是一个非常糟糕的主意
但是,如果您只想使用字符串操作来提取v
的元素,这里有一种方法:
String s = "<tag k=\"addr:street\" v=\"St. Croix gate\"/>";
int vIndex = s.indexOf("v=\"");
int vendQuotesIndex = s.indexOf("\"", vIndex + 3);
System.out.println(s.substring(vIndex + 3, vendQuotesIndex)); // Prints "St. Croix gate"
String s=”“;
int-vIndex=s.indexOf(“v=\”);
int vendQuotesIndex=s.indexOf(“\”,vIndex+3);
System.out.println(s.substring(vIndex+3,vendQuotesIndex));//打印“圣克罗伊门”
您应该使用合适的标记解析器而不是StringTokenizer
来处理此类数据。尤其是如果所有/大部分数据都是标签。如果数据是XML,则应使用XML解析器。应使用合适的标记解析器而不是StringTokenizer
处理此类数据。尤其是如果所有/大部分数据都是标签。如果您的数据是XML,您应该使用XML解析器。谢谢!我也找到了另一种方法,汉克斯!我也找到了另一种方法