2013-02-26 201 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

相关问题