簡體   English   中英

在 Java 中存儲字符串的公共部分的最佳方法是什么?

[英]What is the best way to store a common part of Strings in Java?

我有一些非常相似的字符串,如下所示:

String first = "differentConfig1,config1,config2,config3,config4,config5,config6,config7,config8,config9";
String second = "differentConfig2,config1,config2,config3,config4,config5,config6,config7,config8,config9";
String third = "differentConfig3,config1,config2,config3,config4,config5,config6,config7,config8,config9";

其中config1...config9在每個字符串中都是相同的,但是differentConfig1, differentConfig2 和 differentConfig3是不同的

避免在每個字符串中重復 config1-9 的最佳方法是什么?

(注意 config1-9 大約是 1 行長的值)

我現在擁有的是:

private String commonConfiguration() {
    return "config1,config2,config3,config4,config5,config6,config7,config8,config9"
}

然后字符串是這樣構造的:

String first = "differentConfig1," + commonConfiguration();

我正在考慮使用變量而不是 function,但我擔心 function 開頭的一個很長的變量會使其可讀性降低。

存儲在文件中的配置字符串更好。 這也是大多數系統的工作方式。 例如:大多數系統,如 Kafka 或 Cassandra 在此類配置文件中都有日志配置、日志文件位置、地址等。

因此,使用這種方法,您可以根據需要根據不同的環境更改這些配置字符串,而不會影響代碼。

通過使用屬性文件,您的輸入將只是鍵值對的集合。

firstConfig="differentConfig1,config1,config2,config3,config4,config5,config6,config7,config8,config9" secondConfig="differentConfig2,config1,config2,config3,config4,config5,config6,config7,config8,config9" thirdConfig="differConfig3 ,config1,config2,config3,config4,config5,config6,config7,config8,config9"

我真的不建議進一步打破它,但是如果您確定它們將始終具有相同的 commonPrefix,則一種選擇是執行以下操作:

在您的屬性文件中, firstConfig="differentConfig1" secondConfig="differentConfig2"thirdConfig="differentConfig3" commonPrefix="config1,config2,config3....config9"

在您的代碼中,您閱讀了這些配置字符串和 append 它們。 像這樣的東西:

String c1 = Registry.getString("firstConfig")+Registry.getString("commonPrefix")
String c2 = Registry.getString("secondConfig")+Registry.getString("commonPrefix")
String c3 = Registry.getString("thirdConfig")+Registry.getString("commonPrefix")

注意:屬性文件只是 java 項目中的一個文件,它將配置信息作為鍵值對保存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM