读书人

==================处置字符串=======

发布时间: 2013-04-02 12:35:26 作者: rapoo

==================处理字符串===============
有个字符串,如下.能否有正则表达式什么的,我有一个关键字,比如world,要把world这一行删除?
我现在想到的时,按\n split成数组,再遍历。但是不知有没有其他更好的方法?


"
hello:aaaaaaa \n
world:bbbbbbb \n
ni:ccccccc \n
hao:ddddddd \n
"

[解决办法]
按\n split成数组,再遍历。但是不知有没有其他更好的方法?
为什么要split呀?
String s = "hello:aaaaaaa \nworld:bbbbbbb \nni:ccccccc \nhao:ddddddd\nworld:bbbbbbb \naaakkkk";
s.replaceAll("world:[^\n]*\n", "");
得到结果:
hello:aaaaaaa
ni:ccccccc
hao:ddddddd
aaakkkk

不知道是不是你要的结果。
[解决办法]
引用:
有个字符串,如下.能否有正则表达式什么的,我有一个关键字,比如world,要把world这一行删除?
我现在想到的时,按\n split成数组,再遍历。但是不知有没有其他更好的方法?
Java code?123456"hello:aaaaaaa \nworld:bbbbbbb \nni:ccccccc \nhao:ddddddd \n"
……



Lz可以把这个结果写到数据库或者文件里做进一步操作

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class StringRex
{
public static void main(String[] args)
{
String str = "hello:aaaaaaa \n world:bbbbbbb \n ni:ccccccc \n hao:ddddddd \n";

//第一位是a到z出现一次或多次,第二位是":",第三位是a-z出现一次或多次
//\\s+代表空白字符,包括Tab建
//\\\n 就等同于\n 前两个斜杠是转义字符
String rex = "[a-z]+:[a-z]+\\s+\\\n";

Pattern p = Pattern.compile(rex);

Matcher m = p.matcher(str);

while(m.find())
{
String name = m.group();

if(name.contains("world"))
{
String delName = name;

System.out.println("已删除的字符串:"+delName);
continue;
}

System.out.println(name);
}
}
}

读书人网 >J2SE开发

热点推荐