一个代码段不是很明白

totti_java 2009-10-21 03:14:00
这是struts2源码的一个方法,高手告诉下这个方法为什么用这种方式进行判断?谢谢了。



/**
* Checks if the passed in line should be combined with the following.
* This is true, if the line ends with an odd number of backslashes.
*
* @param line the line
* @return a flag if the lines should be combined
*/
private boolean checkCombineLines(String line)
{
int bsCount = 0;
for (int idx = line.length() - 1; idx >= 0 && line.charAt(idx) == '\\'; idx--)
{
bsCount++;
}

return bsCount % 2 == 1;
}
...全文
181 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
imasmallbird 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 totti_java 的回复:]
现在比较困惑的问题是 属性文件的key=value是不是在一行 与一行后面的 反斜杠的个数的奇偶性有什么关系?
[/Quote]
刚才看了一下源码,这个工具类对Properties文件是这样处理的,如果读取一行时,这一行以"\"结尾,那么就认为这一行是可以与下一行进行连接处理的,也就是本行与下一行同属于一个key所对应的值.而当这个key如果就是想表示一个以"\"结尾的value时就会用"\\"来表示,那么结尾的"\"的个数会是偶数个,若单独以"\"结尾或者以奇数个"\"结尾都会认为是要与下行进行连接
如:
key=value\ 代表key的值value要与下行连接

key=value\\ 代表key的值为value\

key=value\\\ 代表key的值为value\与下行连接

totti_java 2009-10-21
  • 打赏
  • 举报
回复
类代码太长了 包名是:package com.opensymphony.xwork2.util; 类是:PropertiesReader
imasmallbird 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 totti_java 的回复:]
现在比较困惑的问题是 属性文件的key=value是不是在一行 与一行后面的 反斜杠的个数的奇偶性有什么关系?
[/Quote]

你是从之前的代码中看到的key=value?
把你看的类的,包名与类名,贴出来~~
totti_java 2009-10-21
  • 打赏
  • 举报
回复
现在比较困惑的问题是 属性文件的key=value是不是在一行 与一行后面的 反斜杠的个数的奇偶性有什么关系?
amdgaming 2009-10-21
  • 打赏
  • 举报
回复
看下注释,然后 看 到那个 count++计数的

还有那个 ==‘\\’,for循环执行下去的条件。。。。
sun_GA 2009-10-21
  • 打赏
  • 举报
回复
翻译下 注释 就行
justinavril 2009-10-21
  • 打赏
  • 举报
回复
This is true, if the line ends with an odd number of backslashes

方法返回true,如果字符串line的结尾有奇数个后斜杠。
totti_java 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 healer_kx 的回复:]
你知道这段代码是为了处理什么吗?

[/Quote]
我觉得是判断属性文件的一个key=vlaue是不是在一行
zhuzeitou 2009-10-21
  • 打赏
  • 举报
回复
额,正如上面说明的那样,这段代码就是判断字符串line结尾处的连续反斜杠个数是不是奇数
healer_kx 2009-10-21
  • 打赏
  • 举报
回复
你知道这段代码是为了处理什么吗?

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧