怎么在一个长字符串里,找到指定的字符?

charlesxu 2013-01-30 11:43:23
字符串是下面这样的:
<fieldInfo><fieldChName>人名</fieldChName><fieldEnName>Name</fieldEnName><fieldContent>张三</fieldContent></fieldInfo>
<fieldInfo><fieldChName>地址</fieldChName><fieldEnName>Address</fieldEnName><fieldContent>北京</fieldContent></fieldInfo>


我想找到“地址”那一行里,fieldContent标签中的“北京”?
...全文
182 11 点赞 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Candylibin 2013-01-30
给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());
		}
	}
}
  • 打赏
  • 举报
回复
hushoubo 2013-01-30
不是有现成的XML解析类么
  • 打赏
  • 举报
回复
ZZZ5512536 2013-01-30
解析xml就行了
  • 打赏
  • 举报
回复
笑莫问 2013-01-30
确定是字符串吗? 这个结构应该是读取XML比较好 ++
  • 打赏
  • 举报
回复
Danvie 2013-01-30
1、如果是String字符串:可以用String 的split方法,把多个记录行分成数组的形式,然后再读取数组中的每个String的值,首先判断filedname后面的值是否为地址,然后再得到fieldContent的Index,从而得到后面的值。大概思路就是如此了。 2、如果是xml文件,你看看dom解析吧,根据节点值判断,可以得到,看看API,就会了
  • 打赏
  • 举报
回复
hechuanchuan 2013-01-30
确定是字符串吗? 这个结构应该是读取XML比较好
  • 打赏
  • 举报
回复
失落夏天 2013-01-30

//正则提取
	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就可以了
  • 打赏
  • 举报
回复
若鱼1919 2013-01-30


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 "";
	}
  • 打赏
  • 举报
回复
KingSen_Yale 2013-01-30
写成XML 文件吧。 然后解析XML文件,更容易操作。
  • 打赏
  • 举报
回复
charlesxu 2013-01-30
能不能用正则表达式取下值?逻辑判断有点复杂
  • 打赏
  • 举报
回复
charlesxu 2013-01-30
这就是字符串,以后会最为xml处理。 但是现在,我就想把它作为string处理。还有谁能给个思路吗?怎么简单点处理这个字符串?
  • 打赏
  • 举报
回复
相关推荐
军队作战SLG小游戏策划案+公式设计+JSON实例模拟打包 公元135年,相传高祖病重后继无人,宦官专权祸乱朝纲,同年群雄逐鹿风起云涌。乱世的暗流涌动,引起了不少英雄豪杰的注意。广袤的疆域上,战马赫赫战鼓阵阵,纷飞的战火中,是敌人还是朋友也逐渐清晰了起来,这一战不止为了义气还为了和平。 你身边的有从军队中一路砍杀过来的勇士,也有行侠仗义的游侠,也有代父从军的女子,也有从小被培养的刺客。他们组成了一支军队,运用自己擅的作战方式,听从你的指挥,一切性命都系你的身上,如何判断作战情况都你的一念之间。当然军师会协助你,招兵买马,扩充军队,上阵步兵,作战方式均可与其商讨,谋而后立裁决果断并不冲突。 当然战场上武器一定是需要配备的,作战中失去了武器就等同于失去了性命,如何为军队中所有人配置趁手的武器也是作为主帅的你需要考虑的事情。训练军队的同时也要建设城镇,满满的谷仓,成群的鸡鸭,后方有稳健的保障,前方作战才能更加的果敢。 乱世出英雄,各种战役中飞快成,创建一番属于自己的天地吧 实例对比描述: 实例说明: 实例展示了不同情况的军队作战效果,只需要调整参数既可以达到差异化目的。 第一组实例:1000军队的骑兵对战1000军队的骑兵,先手攻击方的
发帖
Java SE
加入

6.2w+

社区成员

Java 2 Standard Edition
申请成为版主
帖子事件
创建了帖子
2013-01-30 11:43
社区公告
暂无公告