2013-02-26 209 views
1

我有一個字符串的大名單一個文件,該文件的形式如何在java中的另一個字符串中的特定字符後添加一個字符串?

key1=value1 
key2=value2 
... 

我需要添加一個字符串如的。每等號後有(Long)。並用這些新字符串創建一個新文件:

key1=(Long)value1. 
key2=(Long)value2. 
... 

如何使用java程序實現此目的?

+1

搜索'='並將其替換爲'=(Long)'。查看類'String'的方法來獲取可用於此的usefule方法。 – Jesper 2013-02-26 09:05:41

+2

或者你可以用awk在一行中做到這一點。 'awk -F ='{print $ 1「=(Long)」$ 2}'bigfile' – squiguy 2013-02-26 09:07:09

+0

如果可以,我可能會建議使用Apache StringUtils'replace'替換默認的java'replace'。 – Quetzalcoatl 2013-02-26 09:20:49

回答

4
BufferedReader b = new BufferedReader(new FileInputStrem(file)); 

while(b.readLine() != null) { 
    System.out.println(line.replace("=", "=(Long)")); 
} 

b.close(); 
1
"key1=value1".replace("=", "=(Long)"); 

分別爲:

"key1=value1".replace("=", "=" + String.valueOf(123l)); 

這將只在Java> 1.4工作,如果沒有=可能在keyvalue

0
public class StringReplace 
{ 
    public static void main(String[]args) 
    { 
     String str1 = "key1=value"; 
     String rep = "=(Long)"; 

     //Printing Current String 
     System.out.println(str1); 

     //Replacing the String 
     str1 = str1.replaceAll("=", rep); 

     //Printing new value 
     System.out.println(str1); 
    } 
} 

使用replaceAll()replace()到替換找到的所有匹配項。

以上是最簡單的方法。你也可以用循環來檢查匹配。但是,如果你正在檢查很多比賽,這將需要大量的記憶,這將是一個恐慌。

+1

這裏你不需要'replaceAll'。只需使用'str1.replace'即可。 – 2013-02-26 09:17:36

+1

@RohitJain:我相信它使用的算法使用較少的內存 – 2013-02-26 09:22:31

+0

它們之間的唯一區別是'replaceAll'將'regex'作爲參數,而'replace'只做簡單的字符串替換。您還可以查看其實現的源代碼。 – 2013-02-26 09:25:29

相關問題