字符串是下面这样的:
<fieldInfo><fieldChName>人名</fieldChName><fieldEnName>Name</fieldEnName><fieldContent>张三</fieldContent></fieldInfo>
<fieldInfo><fieldChName>地址</fieldChName><fieldEnName>Address</fieldEnName><fieldContent>北京</fieldContent></fieldInfo>
我想找到“地址”那一行里,fieldContent标签中的“北京”?

解决方案 »

  1.   

    确定是字符串吗?
    这个结构应该是读取XML比较好
      

  2.   

    1、如果是String字符串:可以用String 的split方法,把多个记录行分成数组的形式,然后再读取数组中的每个String的值,首先判断filedname后面的值是否为地址,然后再得到fieldContent的Index,从而得到后面的值。大概思路就是如此了。
    2、如果是xml文件,你看看dom解析吧,根据节点值判断,可以得到,看看API,就会了
      

  3.   

    确定是字符串吗?
    这个结构应该是读取XML比较好 ++
      

  4.   

    给LZ写了一个解析XML的类,根据节点获取属性值就可以了import java.io.*;
    import javax.xml.parsers.*;
    import org.w3c.dom.*;
    import org.xml.sax.SAXException;public class ReadXml {

    public static void main(String[] args) throws SAXException {
    // TODO Auto-generated method stub
    // 文件路径
    String path = "C:\\chinese.xml";
    new ReadXml().readXml(path);
    } public void readXml(String filePath) throws SAXException {
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = null;
    try {
    db = dbf.newDocumentBuilder();
    } catch (ParserConfigurationException pce) {
    System.err.println(pce); // 出异常时输出异常信息,然后退出,下同
    System.exit(1);
    }
    Document doc = null;
    try {
    doc = db.parse(filePath);
    } catch (DOMException dom) {
    System.err.println(dom.getMessage());
    System.exit(1);
    } catch (IOException ioe) {
    System.err.println(ioe);
    System.exit(1);
    }
    Element root = doc.getDocumentElement(); NodeList chars = root.getElementsByTagName("CountryRegion");
    for (int i = 0; i < chars.getLength(); i++) {

    Element element = (Element) chars.item(i);
    // 根据节点获取每一个节点的属性
    System.out.println(element.getAttribute("Name").toString());
    }
    }
    }
      

  5.   

    这就是字符串,以后会最为xml处理。但是现在,我就想把它作为string处理。还有谁能给个思路吗?怎么简单点处理这个字符串?
      

  6.   

    写成XML 文件吧。然后解析XML文件,更容易操作。
      

  7.   

    public static void main(String[] args) throws Exception {
    String str = "<fieldInfo><fieldChName>人名</fieldChName><fieldEnName>Name</fieldEnName><fieldContent>张三</fieldContent></fieldInfo><fieldInfo><fieldChName>地址</fieldChName><fieldEnName>Address</fieldEnName><fieldContent>北京</fieldContent></fieldInfo>";
    System.out.println(getAddress(str));
    }
    public static String getAddress(String src){
    int offset = 0;
    while(offset < src.length()){
    int fieldInfoStart = src.indexOf("<fieldInfo>",offset);
    int fieldInfoEnd  = src.indexOf("</fieldInfo>",offset);
    offset += fieldInfoEnd+"</fieldInfo>".length();
    if(fieldInfoStart <= -1 || fieldInfoEnd <= -1){
    break;
    }
    String fieldInfo = src.substring(fieldInfoStart,fieldInfoEnd);
    int fieldEnNameStart = fieldInfo.indexOf("<fieldEnName>");
    int fieldEnNameEnd = fieldInfo.indexOf("</fieldEnName>");
    if(fieldEnNameStart <=-1 || fieldEnNameEnd<=-1){
    break;
    }
    String fieldEnName = fieldInfo.substring(fieldEnNameStart+"<fieldEnName>".length(),fieldEnNameEnd);
    int fieldContentStart = fieldInfo.indexOf("<fieldContent>");
    int fieldContentEnd = fieldInfo.indexOf("</fieldContent>");
    if(fieldContentStart <=-1 || fieldContentEnd <= -1){
    break;
    }
    String fieldContent = fieldInfo.substring(fieldContentStart+"<fieldContent>".length(),fieldContentEnd);
    if(fieldEnName.equals("Address")){
    return fieldContent;
    }
    }
    return "";
    }
      

  8.   


    //正则提取
    public static List<String> getContext2() {
    String html="kk<p>123456</p>ssss";
            List<String> resultList = new ArrayList<String>();
            Pattern p = Pattern.compile("<p>([^</p>]*)");//匹配<p>开头,</p>结尾的文档
            Matcher m = p.matcher(html );//开始编译
            while (m.find()) {
                resultList.add(m.group(1));//获取被匹配的部分
            }
            return resultList;
        }
    截取的<p>改成你的那个
    然后处理返回的list就可以了