关于一个困扰一晚上的bug -- java 返回值问题

问题

<span style="font-size:18px;"> tagged=tagData(data, tagger1, tagger2);//tagged是我NER出来的文档。
//内容如The fate of [ORG Lehman Brothers] , Secretary [PER Henry M. Paulson Jr] .
 //注意上面,逗号和句号前面都有空格,我的目的就是要去掉他。
OutFile out = new OutFile(outFiles.elementAt(fileId));
out.println(tagged);
out.close();  </span>

解决失败方法1

<span style="font-size:18px;">out.out.toString().replace(",",".");//只是因为找出来String类型的才有replace方法</span>

解决失败方法2

<span style="font-size:18px;">            tagged.replaceAll("\\s*|\t|\r|\n.",".");
            out.println(tagged);
            out.close();  </span>

困扰我一晚上,我就各种正则的套,因为replaceAll前面是正则的形式。

分析:API如下:

replaceAll

public String replaceAll(String regex,
                         String replacement)
使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。

调用此方法的 str.replaceAll(regex, repl) 形式与以下表达式产生的结果完全相同:

Pattern.compile(regex).matcher(str).replaceAll(repl)

注意,在替代字符串中使用反斜杠 (\) 和美元符号 ($) 与将其视为字面值替代字符串所得的结果可能不同;请参阅 Matcher.replaceAll。如有需要,可使用 Matcher.quoteReplacement(java.lang.String) 取消这些字符的特殊含义。

参数:
regex - 用来匹配此字符串的正则表达式
replacement - 用来替换每个匹配项的字符串
返回:
所得 String

问题:我尼玛没有返回改变的string!!导致最后输出文本中tagged一直是不变的!!!

正确解决

<span style="font-size:18px;">           String str=tagged.replaceAll("\\s,",",");
            String str2=str.replaceAll("\\s\\u002E",".");
            //tagged.replaceAll("\\s*|\t|\r|\n.",".");

            out.println(str2);
            out.close();   </span>

深藏功与名。

关于一个困扰一晚上的bug -- java 返回值问题

时间: 2024-10-12 11:18:12

关于一个困扰一晚上的bug -- java 返回值问题的相关文章

http协议版本和java返回值讨论

先来看看http协议1.0和1.1的区别: 1.0:HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求: 1.1:HTTP 1.1支持持久连接,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟. 再看看java里面return的作用: return语句主要有两个用途:一方面用来表示一个方法返回的值(假定没有void返回值),另一方面是

Java基础---Java中无参数带返回值方法的使用(三十七)

Java 中无参带返回值方法的使用 如果方法不包含参数,但有返回值,我们称为无参带返回值的方法. 例如:下面的代码,定义了一个方法名为 calSum ,无参数,但返回值为 int 类型的方法,执行的操作为计算两数之和,并返回结果 在 calSum( ) 方法中,返回值类型为 int 类型,因此在方法体中必须使用 return 返回一个整数值. 调用带返回值的方法时需要注意,由于方法执行后会返回一个结果,因此在调用带返回值方法时一般都会接收其返回值并进行处理.如: 运行结果: 不容忽视的"小陷阱&

慕课网-Java入门第一季-7-3 Java 中无参带返回值方法的使用

来源:http://www.imooc.com/code/1579 如果方法不包含参数,但有返回值,我们称为无参带返回值的方法. 例如:下面的代码,定义了一个方法名为 calSum ,无参数,但返回值为 int 类型的方法,执行的操作为计算两数之和,并返回结果 在 calSum( ) 方法中,返回值类型为 int 类型,因此在方法体中必须使用 return 返回一个整数值. 调用带返回值的方法时需要注意,由于方法执行后会返回一个结果,因此在调用带返回值方法时一般都会接收其返回值并进行处理.如:

正确理解Java方法的返回值

首先来看一段代码 我们把这段代码称为代码①,接下来我们再来看另外一段代码 我们把这段代码称为代码②.在代码①当中,定义了一个方法,这个方法声明的返回值类型是double,而实际通过return关键字返回的却是一个int型的值,但并没有引起编译错误.而在代码②当中,情况正好相反,方法声明的返回值类型是int,方法内部的return关键字实际返回了一个double类型的值,在这种情况下,编译器却报出了语法错误.对比一下这两种情况,很多初学Java的小伙伴搞不清:为什么同样是方法声明的返回值类型与实际

Java 中无参带返回值方法的使用

如果方法不包含参数,但有返回值,我们称为无参带返回值的方法. 例如:下面的代码,定义了一个方法名为 calSum ,无参数,但返回值为 int 类型的方法,执行的操作为计算两数之和,并返回结果 在 calSum( ) 方法中,返回值类型为 int 类型,因此在方法体中必须使用 return 返回一个整数值. 调用带返回值的方法时需要注意,由于方法执行后会返回一个结果,因此在调用带返回值方法时一般都会接收其返回值并进行处理.如: 运行结果为: 两数之和为:17 不容忽视的“小陷阱”: 1. 如果方

Python--函数内部变量都是临时的,当函数返回以后,返回值可以赋予一个变量。

#coding=utf-8print "Let's practice everything."print ' You\'d need to know\'bout escapes with \\ that do \n newlines and \t tabs.' poem = """\tThe lovely worldwith logic so firmly plantedcannot discern \n the needs of lovenor comp

spring整合mybatis遇到的bug java.lang.IllegalArgumentException: Property &#39;sqlSessionFactory&#39; or &#39;sqlSessionTemplate&#39; are required

出bug的原因:mybatis-spring版本问题. 查看SqlSessionDaoSupport源码 1.2以上的版本: 1.1.1版本: 解决方法:1.2版本移除了@Autowired的注解,所以如果是1.2版本以上,要在BaseDaoImpl里面手动 注入SetSessionTemplate或者SetSessionFactory spring整合mybatis遇到的bug java.lang.IllegalArgumentException: Property 'sqlSessionFa

Bean-Query 一个把对象转换为Map的Java工具库

刚开源了一个经过完整测试的Java工具类.目前的代码已经经历了完整的测试,正在申请放到Maven central Repository上. 地址如下: https://github.com/Jimmy-Shi/bean-query 使用说明如下: Bean-query Click Here for English version. BeanQuery 是一个把对象转换为Map的Java工具库.支持选择Bean中的一些属性,对结果进行排序和按照条件查询.不仅仅可以作用于顶层对象,也可以作用于子对象

在eclpse中 一个web project 引用多个 java project 的方法

在开发时,我们会遇到一个需求:模块化.它要求我们把 业务组件进行拆分,分组.把一部分业务功能集中处理,以保证 部分功能块的独立,便于 分配任务到个人,确定人员职责,源代码管理,和发布时重组. 我们尝试把 各个模块的代码放置到不同的java project 中,主工程是一个java web project ,引用多个 子project(这个子project 是一个个的功能块). 同时 java 的注解,配合spring 给我们带来了 更多的方便性. 网上有朋友提出方法:把子project 打成ja