添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

项目需要跨数据库的存储操作,就是从库A中的数据读取然后转存到数据库B中,但是目前DBA对跨库操作的支持不是很好,需要手动进行。我要做的是把查找的结果进行拼接,方便数据插入。即把如下数据转换为('1','10000000','2020-02-13','14:42:44','王五');的形式。数据涉及很多条,手动操作易出错,且,费时间,就有了今天的博客。

1	10000000		2020-02-13 14:42:44		王五	

做了什么?

  1. 读取指定路径下的文件A,文件内存储多行以空格分隔的数据
  2. 对文件A中数据逐行操作,空格替换等,转换为指定格式
  3. 将转换后的数据逐行存储到文件B中

如下,注释中已说明数据上述的哪一步操作了,大家按照自己需要稍作修改和删减即可。

        //1-1.读取指定路径下的文件A,GB2312保证程序能够正确读取中文
        String inFileName = "D:/testfiles.txt";
        InputStreamReader isr = new InputStreamReader(new FileInputStream(inFileName), "GB2312");
        BufferedReader in=new BufferedReader(isr);
        //3-1.指定输出文件
        String outFileName = "D:/2.txt";
        PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(outFileName)));
        String line;
        String replaceLine;
        StringBuffer resLine;
        //2-1.构建模板匹配文件中的空格
        Matcher m;
        Pattern p = Pattern.compile("\\s+");
        //1-2.逐行读取输入文件
        while((line=in.readLine())!=null){
            m = p.matcher(line);
            //2-3.使用指定字符替换空格,并进行格式拼接
            replaceLine = m.replaceAll("','");
            resLine = new StringBuffer().append("('").append(replaceLine).append("');");
            //3-2.将内容存储到输出文件中
            out.println(resLine.toString());
        //1-3.关闭输入文件
        in.close();
        //3-3.关闭输出文件
        out.close();
背景项目需要跨数据库的存储操作,就是从库A中的数据读取然后转存到数据库B中,但是目前DBA对跨库操作的支持不是很好,需要手动进行。我要做的是把查找的结果进行拼接,方便数据插入。即把如下数据转换为('1','10000000','2020-02-13','14:42:44','王五');的形式。数据涉及很多条,手动操作易出错,且,费时间,就有了今天的博客。1 10000000 2020-...
"^The": 匹配以 "The"开头的 字符 串; "of despair$": 匹配以 "of despair" 结尾的 字符 串; "^abc$": 匹配以abc开头和以abc结尾的 字符 串,实际上是只有abc与之匹配 "notice": 匹配包含notice的 字符 串 你可以看见如果你没有用我们提到的两个 字符 (最后一个例子),就是说 模式(正则表达式) 可以出现在被检验 字符 串的任何地方,你没有把他锁定到两边 这里还有几个 字符 '*', '+',和 '?', 他们用来表示一个 字符 可以出现的次数或者顺序. 他们分别表示:"zero or more", "one or more", and "zero or one." 这里是一些例子: "ab*": 匹配 字符 串a和0个或者更多b组成的 字符 串("a", "ab", "abbb", etc.); "ab+": 和上面一样,但最少有一个b ("ab", "abbb", etc.); "ab?":匹配0个或者一个b; "a?b+$": 匹配以一个或者0个a再加上一个以上的b结尾的 字符 串. 你也可以在大括号里面限制 字符 出现的个数,比如 "ab{2}": 匹配一个a后面跟两个b(一个也不能少)("abb"); "ab{2,}": 最少更两个b("abb", "abbbb", etc.); "ab{3,5}": 2-5个b("abbb", "abbbb", or "abbbbb"). 你还要注意到你必须总是 指定 (i.e, "{0,2}", not "{,2}").同样,你必须注意到, '*', '+', 和'?' 分别和一下三个范围标注是一样的,"{0,}", "{1,}", 和 "{0,1}"。 现在把一定数量的 字符 放到小括号里,比如: "a(bc)*": 匹配 a 后面跟0个或者一个"bc"; "a(bc){1,5}": 一个到5个 "bc." 还有一个 字符 '│', 相当于OR 操作: "hi│hello": 匹配含有"hi" 或者 "hello" 的 字符 串; "(b│cd)ef": 匹配含有 "bef" 或者 "cdef"的 字符 串; "(a│b)*c": 匹配含有这样 - 多个(包括0个)a或b,后面跟一个c 的 字符 串 的 字符 串; 一个点('.')可以代表所有的 单一 字符 : "a.[0-9]": 一个a跟一个 字符 再跟一个数字的 (含有这样一个 字符 串的 字符 串将被匹配,以后省略此括号) "^.{3}$": 以三个 字符 结尾 . 中括号括住的内容只匹配一个 单一的 字符 "[ab]": 匹配单个的 a 或者 b ( 和 "a│b" 一样); "[a-d]": 匹配'a' 到'd'的单个 字符 (和"a│b│c│d" 还有 "[abcd]"效果一样); "^[a-zA-Z]": 匹配以字母开头的 字符 串 "[0-9]%": 匹配含有 形如 x% 的 字符 串 ",[a-zA-Z0-9]$": 匹配以逗号在加一个数字或字母结尾的 字符 串 你也可以把你不想要得 字符 列在中括号里,你只需要在总括号里面使用'^' 作为开头 (i.e., "%[^a-zA-Z]%" 匹配含有 两个百分号里面有一个非字母 的 字符 串). 为了能够解释,但"^.[$()│*+?{\"作为有特殊意义的 字符 的时候,你必须在这些 字符 面前加'', 还有在php3中你应该避免在模式的最前面使用\, 比如说,正则表达式 "(\$│?[0-9]+" 应该这样调用 ereg("(\\$│?[0-9]+", $str) (不知道php4是不是一样) 不要忘记在中括号里面的 字符 是这条规路的例外—在中括号里面, 所有的特殊 字符 ,包括(''), 都将失去他们的特殊性质(i.e., "[*\+?{}.]"匹配含有这些 字符 字符 串). 还有,正如regx的手册告诉我们: "如果列表里含有 ']', 最好把它作为列表里的第一个 字符 (可能跟在'^'后面). 如果含有'-', 最好把它放在最前面或者最后面, or 或者一个范围的第二个结束点(i.e. [a-d-0-9]中间的‘-’将有效. 为了完整, 我应该涉及到 collating sequences, character classes, 同埋 equivalence classes. 但我在这些方面不想讲的太详细, 这些在下面的文章仲都不需要涉及到. 你们可以在regex man pages 那里得到更多消息. 如何构建一个模式来匹配 货币数量 的输入 好了,现在我们要用我们所学的来干一些有用的事:构建一个匹配模式去检查输入的信息是否为一个表示money的数字。我们认为一个表示money的数量有四种方式: "10000.00" 和 "10,000.00",或者没有小数部分, "10000" and "10,000". 现在让我们开始构建这个匹配模式: ^[1-9][0-9]*$ 这是所变量必须以非0的数字开头.但这也意味着 单一的 "0" 也不能通过测试. 以下是解决的方法: ^(0│[1-9][0-9]*)$ "只有0和不以0开头的数字与之匹配",我们也可以允许一个负号再数字之前: ^(0│-?[1-9][0-9]*)$ 这就是: "0 或者 一个以0开头可能有一个负号在前面的数字." 好了, 好了现在让我们别那么严谨,允许以0开头.现在让我们放弃 负号 , 因为我们在表示钱币的时候并不需要用到. 我们现在 指定 模式 用来匹配小数部分: ^[0-9]+(\.[0-9]+)?$ 这暗示匹配的 字符 串必须最少以一个阿拉伯数字开头. 但是注意,在上面模式中 "10." 是不匹配的, 只有 "10" 和 "10.2" 才可以. (你知道为什么吗) ^[0-9]+(\.[0-9]{2})?$ 我们上面 指定 小数点后面必须有两位小数.如果你认为这样太苛刻,你可以改成: ^[0-9]+(\.[0-9]{1,2})?$ 这将允许小数点后面有一到两个 字符 . 现在我们加上用来增加可读性的逗号(每隔三位), 我们可以这样表示: ^[0-9]{1,3}(,[0-9]{3})*(\.[0-9]{1,2})?$ 不要忘记加号 '+' 可以被乘号 '*' 替代如果你想允许空白 字符 串被输入话 (为什么?). 也不要忘记反斜杆 ’\’ 在php 字符 串中可能会出现错误 (很普遍的错误). 现在,我们已经可以确认 字符 串了, 我们现在把所有逗号都去掉 str_replace(",", "", $money) 然后在把类型看成 double然后我们就可以通过他做数学计算了. 构造检查email的正则表达式 好,让我们继续讨论怎么验证一个email地址. 在一个完整的email地址中有三个部分: POP3 用户名 (在 '@' 左边的一切), '@', 服务器名(就是剩下那部分). 用户名可以含有大小写字母阿拉伯数字,句号 ('.'), 减号('-'), and 下划线 ('_'). 服务器名字也是符合这个规则,当然下划线除外. 现在, 用户名的开始和结束都不能是句点. 服务器也是这样. 还有你不能有两个连续的句点他们之间至少存在一个 字符 ,好现在我们来看一下怎么为用户名写一个匹配模式: ^[_a-zA-Z0-9-]+$ 现在还不能允许句号的存在. 我们把它加上: ^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*$ 上面的意思就是说: "以至少一个规范 字符 (除.意外)开头,后面跟着0个或者多个以点开始的 字符 串." 简单化一点, 我们可以用 eregi()取代 ereg().eregi()对大小写不敏感, 我们就不需要 指定 两个范围 "a-z" 和 "A-Z" – 只需要 指定 一个就可以了: ^[_a-z0-9-]+(\.[_a-z0-9-]+)*$ 后面的服务器名字也是一样,但要去掉下划线: ^[a-z0-9-]+(\.[a-z0-9-]+)*$ Done. 现在只需要用”@”把两部分连接: ^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$ 这就是完整的email认证匹配模式了,只需要调用 eregi(‘^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$ ’,$eamil) 就可以得到是否为email了 正则表达式的其他用法 提取 字符 串 ereg() and eregi() 有一个特性是允许用户通过正则表达式去提取 字符 串的一部分(具体用法你可以阅读手册). 比如说,我们想从 path/URL 提取 文件 名 – 下面的代码就是你需要: ereg("([^\\/]*)$", $pathOrUrl, $regs); echo $regs[1]; 高级的代换 ereg_replace() 和 eregi_replace()也是非常有用的: 假如我们想把所有的间隔负号都 替换 成逗号: ereg_replace("[ \n\r\t]+", ",", trim($str)); PHP被大量的应用于Web的后台CGI开发,通常是在用户数据数据之后得出某种结果,但是如果用户输入的数据不正确,就会出现问题,比如说某人的生日是"2月30日"!那应该怎么样来检验暑假是否正确呢? 在PHP中加入了正则表达式的支持,让我们可以十分方便的进行数据匹配。 2 什么是正则表达式: 简单的说,正则表达式是一种可以用于模式匹配和 替换 的强大工具。在几乎所有的基于UNIX/LINUX系统的软件工具中找到正则表达式的痕迹,例如:Perl或PHP脚本语言。此外, Java Script这种客户端的脚本语言也提供了对正则表达式的支持,现在正则表达式已经成为了一个通用的概念和工具,被各类技术人员所广泛使用。 在某个Linux网站上面有这样的话:"如果你问一下Linux爱好者最喜欢什么,他可能会回答正则表达式;如果你问他最害怕什么,除了繁琐的安装配置外他肯定会说正则表达式。" 正如上面说的,正则表达式看起来非常复杂,让人害怕,大多数的PHP初学者都会跳过这里,继续下面的学习,但是PHP中的正则表达式有着可以利用模式匹配找到符合条件的 字符 串、判断 字符 串是否合乎条件或者用 指定 字符 串来替代符合条件的 字符 串等强大的功能,不学实在太可惜了…… 3 正则表达式的基本语法: 一个正则表达式,分为三个部分:分隔符,表达式和修饰符。 分隔符可以是除了特殊 字符 以外的任何 字符 (比如"/ !"等等),常用的分隔符是"/"。表达式由一些特殊 字符 (特殊 字符 详见下面)和非特殊的 字符 串组成,比如"[a-z0-9_-]+@[a-z0-9_-.]+"可以匹配一个简单的电子邮件 字符 串。修饰符是用来开启或者关闭某种功能/模式。下面就是一个完整的正则表达式的例子: /hello.+?hello/is 上面的正则表达式"/"就是分隔符,两个"/"之间的就是表达式,第二个"/"后面的 字符 串"is"就是修饰符。 在表达式中如果含有分隔符,那么就需要使用转义符号"\",比如"/hello.+?\/hello/is"。转义符号除了用于分隔符外还可以执行特殊 字符 ,全部由字母构成的特殊 字符 都需要"\"来转义,比如"\d"代表全体数字。 4 正则表达式的特殊 字符 : 正则表达式中的特殊 字符 分为元 字符 、定位 字符 等等。 元 字符 是正则表达式中一类有特殊意义的 字符 ,用来描述其前导 字符 (即元 字符 前面的 字符 )在被匹配的对象中出现的方式。元 字符 本身是一个个单一的 字符 ,但是不同或者相同的元 字符 组合起来可以构成大的元 字符 。 元 字符 : 大括号:大括号用来精确 指定 匹配元 字符 出现的次数,例如"/pre{1,5}/"表示匹配的对象可以是"pre"、"pree"、"preeeee"这样在"pr"后面出现1个到5个"e"的 字符 串。或者"/pre{,5}/"代表pre出现0此到5次之间。 加号:"+" 字符 用来匹配元 字符 前的 字符 出现一次或者多次。例如"/ac+/"表示被匹配的对象可以是"act"、"account"、"acccc"等在"a"后面出现一个或者多个"c"的 字符 串。"+"相当于"{1,}"。 星号:"*" 字符 用来匹配元 字符 前的 字符 出现零次或者多次。例如"/ac*/"表示被匹配的对象可以是"app"、"acp"、"accp"等在"a"后面出现零个或者多个"c"的 字符 串。"*"相当于"{0,}"。 问号:"?" 字符 用来匹配元 字符 前的 字符 出现零次或者1次。例如"/ac?/"表示匹配的对象可以是"a"、"acp"、"acwp"这样在"a"后面出现零个或者1个"c"的 字符 串。"?"在正则表达式中还有一个非常重要的作用,即"贪婪模式"。 还有两个很重要的特殊 字符 就是"[ ]"。他们可以匹配"[]"之中出现过的 字符 ,比如"/[az]/"可以匹配单个 字符 "a"或者"z";如果把上面的表达式改成这样"/[a-z]/",就可以匹配任何单个小写字母,比如"a"、"b"等等。 如果在"[]"中出现了"^",代表本表达式不匹配"[]"内出现的 字符 ,比如"/[^a-z]/"不匹配任何小写字母!并且正则表达式给出了几种"[]"的默认值: [:alpha:]:匹配任何字母 [:alnum:]:匹配任何字母和数字 [:digit:]:匹配任何数字 [:space:]:匹配 空格 符 [:upper:]:匹配任何大写字母 [:lower:]:匹配任何小写字母 [:punct:]:匹配任何标点符号 [:xdigit:]:匹配任何16进制数字 另外下面这些特殊 字符 在转义符号"\"转义后代表的含义如下: s:匹配单个的 空格 符 S:用于匹配除单个 空格 符之外的所有 字符 。 d:用于匹配从0到9的数字,相当于"/[0-9]/"。 w:用于匹配字母,数字或下划线 字符 ,相当于"/[a-zA-Z0-9_]/"。 W:用于匹配所有与w不匹配的 字符 ,相当于"/[^a-zA-Z0-9_]/"。 D:用于匹配任何非10进制的数字 字符 。 .:用于匹配除换行符之外的所有 字符 ,如果经过修饰符"s"的修饰,"."可以代表任意 字符 。 利用上面的特殊 字符 可以很方便的表达一些比较繁琐的模式匹配。例如"/\d0000/"利用上面的正则表达式可以匹配万以上,十万一下的整数 字符 串。 定位 字符 : 定位 字符 是正则表达式中又一类非常重要的 字符 ,它的主要作用是用于对 字符 在匹配对象中的位置进行描述。 ^:表示匹配的模式出现在匹配对象的开头(和在"[]"里面不同) $:表示匹配的模式出现在匹配对象的末尾 空格 :表示匹配的模式出现在开始和结尾的两个边界之一 "/^he/":可以匹配以"he" 字符 开头的 字符 串,比如hello、height等等; "/he$/":可以匹配以"he" 字符 结尾的 字符 串即she等; "/ he/": 空格 开头,和^的作用一样,匹配以he开头的 字符 串; "/he /": 空格 结束,和$的作用一样,匹配以he结尾的 字符 串; "/^he$/":表示只和 字符 串"he"匹配。 正则表达式除了可以用户匹配,还可以用括号"()"来记录需要的信息,储存起来,给后面的表达式 读取 。比如: /^([a-zA-Z0-9_-]+)@([a-zA-Z0-9_-]+)(.[a-zA-Z0-9_-])$/ 就是记录邮件地址的用户名,和邮件地址的服务器地址(形式为username@server.com之类的),在后面如果想要 读取 记录下来的 字符 串,只是需要用"转义符+记录的次序"来 读取 。比如"\1"就相当于第一个"[a-zA-Z0-9_-]+","\2"相当于第二个([a-zA-Z0-9_-]+),"\3"就是第三个(.[a-zA-Z0-9_-])。但是在PHP中,"\"是一个特殊的 字符 ,需要转义,所以""到了PHP的表达式中就应该写成"\\1"。 其他特殊符号: "|":或符号"|"和PHP里面的或一样,不过是一个"|",而不是PHP的两个"||"!意思就是可以是某个 字符 或者另一个 字符 串,比如"/abcd|dcba/"可能匹配"abcd"或者"dcba"。 5 贪婪模式: 前面在元 字符 中提到过"?"还有一个重要的作用,即"贪婪模式",什么是"贪婪模式"呢? 比如我们要匹配以字母"a"开头字母"b"结尾的 字符 串,但是需要匹配的 字符 串在"a"后面含有很多个"b",比如"a bbbbbbbbbbbbbbbbb",那正则表达式是会匹配第一个"b"还是最后一个"b"呢?如果你使用了贪婪模式,那么会匹配到最后一个"b",反之只是匹配到第一个"b"。 使用贪婪模式的表达式如下: /a.+?b/ /a.+b/U 不使用贪婪模式的如下: /a.+b/ 上面使用了一个修饰符U,详见下面的部分。 6 修饰符: 在正则表达式里面的修饰符可以改变正则的很多特性,使得正则表达式更加适合你的需要(注意:修饰符对于大小写是敏感的,这意味着"e"并不等于"E")。正则表达式里面的修饰符如下: i :如果在修饰符中加上"i",则正则将会取消大小写敏感性,即"a"和"A" 是一样的。 m:默认的正则开始"^"和结束"$"只是对于正则 字符 串如果在修饰符中加上"m",那么开始和结束将会指 字符 串的每一行:每一行的开头就是"^",结尾就是"$"。 s:如果在修饰符中加入"s",那么默认的"."代表除了换行符以外的任何 字符 将会变成任意 字符 ,也就是包括换行符! x:如果加上该修饰符,表达式中的空白 字符 将会被忽略,除非它已经被转义。 e:本修饰符仅仅对于replacement有用,代表在replacement中作为PHP代码。 A:如果使用这个修饰符,那么表达式必须是匹配的 字符 串中的开头部分。比如说"/a/A"匹配"abcd"。 E:与"m"相反,如果使用这个修饰符,那么"$"将匹配绝对 字符 串的结尾,而不是换行符前面,默认就打开了这个模式。 U:和问号的作用差不多,用于设置"贪婪模式"。 7 PCRE相关的正则表达式函数: PHP的Perl兼容正则表达式提供的多个函数,分为模式匹配, 替换 和匹配数目等等: 1、preg_match : 函数格式:int preg_match(string pattern, string subject, array [matches]); 这个函数会在string中使用pattern表达式来匹配,如果给定了[regs],就会将string记录到[regs][0]中,[regs][1]代表使用括号"()"记录下来的第一个 字符 串,[regs][2]代表记录下来的第二个 字符 串,以此类推。preg如果在string中找到了匹配的pattern,就会返回"true",否则返回"false"。 2、preg_replace : 函数格式:mixed preg_replace(mixed pattern, mixed replacement, mixed subject); 这个函数会使用将string中符合表达式pattern的 字符 串全部 替换 为表达式replacement。如果replacement中需要包含pattern的部分 字符 ,则可以使用"()"来记录,在replacement中只是需要用"\1"来 读取 。 3、preg_split : 函数格式:array preg_split(string pattern, string subject, int [limit]); 这个函数和函数split一样,区别仅在与split可以使用简单正则表达式来分割匹配的 字符 串,而preg_split使用完全的Perl兼容正则表达式。第三个参数limit代表允许返回多少个符合条件的值。 4、preg_grep : 函数格式:array preg_grep(string patern , array input); 这个函数和preg_match功能基本上,不过preg_grep可以将给定的数组input中的所有元素匹配,返回一个新的数组。 下面举一个例子,比如我们要检查Email地址的格式是否正确: function emailIsRight($email) { if (preg_match("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$email)) { return 1; return 0; if(emailIsRight('y10k@963.net')) echo '正确<br>'; if(!emailIsRight('y10k@fffff')) echo '不正确<br>'; 上面的程序会输出"正确<br>不正确"。 8.PHP中的Perl兼容正则表达式和Perl/Ereg正则表达式的区别: 虽然叫做“Perl兼容正则表达式”,但是和Perl的正则表达式相比,PHP的还是由一些不同,比如修饰符“G”在Perl里面代表全部匹配,但是在PHP中没有加入对这个修饰符的支持。 还有就是和ereg系列函数的区别,ereg也是PHP中提供的正则表达式函数,不过和preg相比,要弱上很多。 1、ereg里面是不需要也不能使用分隔符和修饰符的,所以ereg的功能比preg要弱上不少。 2、关于".":点在正则里面一般是除了换行符以外的全部 字符 ,但是在ereg里面的"."是任意 字符 ,即包括换行符!如果在preg里面希望"."能够包括换行符,可以在修饰符中加上"s"。 3、ereg默认使用贪婪模式,并且不能修改,这个给很多 替换 和匹配带来麻烦。 4、速度:这个或许是很多人关心的问题,会不会preg功能强大是以速度来换取的?不用担心,preg的速度要远远比ereg快,笔者做了一个程序测试: time test: PHP代码: echo "Preg_replace used time:"; $start = time(); for($i=1;$i<=100000;$i++) { $str = "ssssssssssssssssssssssssssss"; preg_replace("/s/","",$str); $ended = time()-$start; echo $ended; echo " ereg_replace used time:"; $start = time(); for($i=1;$i<=100000;$i++) { $str = "ssssssssssssssssssssssssssss"; ereg_replace("s","",$str); $ended = time()-$start; echo $ended; echo " str_replace used time:"; $start = time(); for($i=1;$i<=100000;$i++) { $str = "sssssssssssssssssssssssssssss"; str_replace("s","",$str); $ended = time()-$start; echo $ended; Preg_replace used time:5 ereg_replace used time:15 str_replace used time:2 str_replace因为不需要匹配所以速度非常快,而preg_replace的速度比ereg_replace要快上不少。 9.关于PHP3.0对于preg的支持: 在PHP 4.0中默认加入了preg支持,但是在3.0中确没有。如果在3.0中希望使用preg函数,必须加载php3_pcre.dll 文件 ,只要在php.ini的extension部分设置加入"extension = php3_pcre.dll"然后从新启动PHP就可以了! 其实正则表达式还常用于UbbCode的实现,很多PHP论坛都使用了这个方法(比如zForum zphp.com或者vB vbullent.com),但是具体的代码比较长。 本文来自http://blog.csdn.net/kkobebryant/archive/2005/01/25/267527.aspx
在配置Maven工程的基本工作单元POM的过程中,因为代理问题,所以我就把一些配置直接复制粘贴到setting.xml上了。但是在这个 文件 读取 解析过程中,一些 空格 、换行符被解析为text文本,导致xml配置 文件 解析错误。错误信息如下: [ERROR] Error executing Maven. [ERROR] 1 problem was encountered while buil... str.trim(); //去掉首尾 空格 str.replace(" “,”"); //去除所有 空格 ,包括首尾、中间 str.replaceAll(" ", “”); //去掉所有 空格 ,包括首尾、中间 str.replaceAll(" +",""); //去掉所有 空格 ,包括首尾、中间 str.replaceAll("\s*", “”); //可以 替换 大部分空白 字符 , 不限于 空格 ...
java 替换 空格 请实现一个函数,将一个 字符 串s中的每个 空格 替换 成“%20”。 例如,当 字符 串为We Are Happy.则经过 替换 之后的 字符 串为We%20Are%20Happy。 数据范围: \0≤len(s)≤1000。保证 字符 串中的 字符 为大写英文字母、小写英文字母和 空格 中的一种。...
import java .io.*; public class test { public static void Test(String oldfilePath,String newfilePath){ File file = new File(oldfilePath); //判断 文件 存在并且是 文件 Boolean boo = file.exists()&&file.isFile(); System.out.println(boo);
问题是:“键盘输入 文件 的路径、查找内容和 替换 内容,对 指定 路径的 文件 的内容进行查找和 替换 。” 好久没写界面了,今天熟悉一下界面的书写和监听器操作。 这个问题的本身不是很难,重点应该是 文件 处理时的各种可能出现的错误进行处理。因此写代码时需要非常细心,并且把错误处理到位。 另外,这个界面写的很规范,注释也都很到位,也可以直接拿走留作他用。 Replace. java
读取 文件 代码如下: File file = new File("C:/Users/Administrator/Desktop/test1.json"); try { String content = FileUtils.readFileToString(file, "utf-8"); System.out.println(content); } catch (Exceptio...
需求:将文本放在服务器下,并修改文本中的值,1,获取服务器地址public Configuration getStandardConfig() { //获取服务器的webapp路径 ServletContext context = ServletActionContext.getServletContext(); File file = new Fi
java 中读出 txt 文件 内容并修改怎么写入原 txt 文件 import java .io.BufferedReader; import java .io.BufferedWriter; import java .io.File; import java .io.FileInputStream; import java .io.FileNotFoundException; import java .io.File...
import java .io.BufferedReader; import java .io.FileInputStream; import java .io.InputStreamReader; import java .util.zip.ZipEntry; import java .util.zip.ZipInputStream; public class ReadZipFile { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream("example.zip"); ZipInputStream zis = new ZipInputStream(fis); ZipEntry entry; while ((entry = zis.getNextEntry()) != null) { if (!entry.isDirectory() && entry.getName().endsWith(". txt ")) { BufferedReader reader = new BufferedReader(new InputStreamReader(zis)); String line; while ((line = reader.readLine()) != null) { line = line.replace("old_char", "new_char"); System.out.println(line); zis.close(); } catch (Exception e) { e.printStackTrace(); 在上面的代码中,我们使用`ZipInputStream` 读取 zip 文件 并通过`getNextEntry`方法遍历zip 文件 中的所有条目。然后使用`BufferedReader` 读取 文本 文件 并使用`replace`方法 替换 所需的 字符
IDEA 报错 LoggerFactory is not a Logback LoggerContext but Logback is on the classpath,如何排除依赖冲突 Knife孤独: 大哥 牛逼 改了一晚上就你靠谱