Java 属性配置无法正确读取双引号内的逗号

Java 属性配置无法正确读取双引号内的逗号,java,properties,delimiter,apache-commons,Java,Properties,Delimiter,Apache Commons,我使用classorg.apache.commons.configuration.PropertiesConfiguration来解释属性文件 PropertiesConfiguration props = new PropertiesConfiguration(path); String delimiter = props.getString("FIELD_DELIMITER"); 除了一个场景,一切都很好。当字段分隔符的值作为提供时,“ 然后,字符串分隔符的值被获取为“。 除此之外,所有其

我使用class
org.apache.commons.configuration.PropertiesConfiguration
来解释属性文件

PropertiesConfiguration props = new PropertiesConfiguration(path);
String delimiter = props.getString("FIELD_DELIMITER");
除了一个场景,一切都很好。当
字段分隔符的值作为
提供时,“

然后,字符串
分隔符
的值被获取为
。 除此之外,所有其他值的行为与预期一致。例如,如果属性的给定形式为:

FIELD_DELIMITER="a"
然后字符串
分隔符的值将作为
“a”
获得(如预期)

我试图找出问题所在。我意识到编译器将其视为一个逗号分隔数组,只读取第一个字符,即
,其余字符则保留。我希望读取的逗号根本不会被解释为值。这不应该以这种方式发生,尽管我调用的方法是
getString()
,而不是
getStringArray()

那我怎么读呢? 我无法更改分割值的默认分隔符,因为我必须以
props.getStringArray()

的形式读取具有逗号分隔值的其他属性。根据,您似乎可以转义逗号

示例(来自文档):

#可以在令牌中转义逗号

commas.escape=Hi\,怎么了?

在这里提问之前,请不要以为我没有阅读过文档。如果你不相信这会发生,你自己试试吧@TomSo您声称您已经阅读了文档,并且您仍然不知道如何使用“,”作为字符串的一部分,尽管文档告诉您如何这样做?或者您想说文档中的解决方案不适合您?什么时候你还没有把它添加到问题中?请阅读Riaan回答中的我的评论,以了解我的情况@TomWell,看起来是时候更新问题来添加此信息了。你是对的,但我实际上无法更改属性文件,因为它将从其他源传递到代码中。在这种情况下,如果无法让文件所有者修改属性以转义逗号,则可能需要使用Apache Commons以外的其他内容。
FIELD_DELIMITER="a"