java替换所有多行字符串

时间:2015-01-08 03:54:16

标签: java replaceall

尝试用java中的另一个字符串的内容替换字符串中的标记。

searchString是我从文本文件中读取的标题。 replaceString是另一个可变长度字符串(bodyString)的长度

代码是:

String replaceString = Integer.toString(bodyString.length());
System.out.println("****************************************");
System.out.println("Body String: " + bodyString);
System.out.println("\nBody Length: " + replaceString);  
System.out.println("\nSearch String: " + searchString);
if (searchString.contains("ContentLength")){
    System.out.println("\nfound ContentLength in string");
    searchString.replaceAll("ContentLength", replaceString);
}  
System.out.println("\nSearch String: " + searchString);
System.out.println("****************************************");

输出:

****************************************
Body String: 0425742196,1234,13:36:47,

Body Length: 26

Search String: HTTP/1.1 200 OK
Date: Mon, 02 Dec 2013 08:57:36 GMT
Server: IBM_HTTP_Server
Cache-Control: no-cache
Content-Length: ContentLength
Set-Cookie: JSESSIONID=0000hzYFq3Sa-rl7ywJMrGTF0he:186g6992j; Path=/
Set-Cookie: PLAY_ERRORS=""; Path=/locationsapi/
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Connection: close
Content-Type: application/text; charset=utf-8
Content-Language: en-AU

found content in string

Search String: HTTP/1.1 200 OK
Date: Mon, 02 Dec 2013 08:57:36 GMT
Server: IBM_HTTP_Server
Cache-Control: no-cache
Content-Length: ContentLength
Set-Cookie: JSESSIONID=0000hzYFq3Sa-rl7ywJMrGTF0he:186g6992j; Path=/
Set-Cookie: PLAY_ERRORS=""; Path=/locationsapi/
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Connection: close
Content-Type: application/text; charset=utf-8
Content-Language: en-AU
****************************************

我怀疑我遇到多行问题,但似乎无法克服它。

任何建议表示赞赏......

1 个答案:

答案 0 :(得分:1)

你想要

searchString = searchString.replaceAll("ContentLength", replaceString)

在Java中,String不可变的。如果你想要一个新的String,你需要通过构造函数调用或许多工厂方法之一获得一个新的String。