所以我有一个非常长的字符串,其中包含我只显示其中一部分的股票代码。
package Holiday;
public class Service{
public String name;
public double cost;
public double payedOff;
public static void main(String[] args){
// All servicess go here
Service camera = new Service();
camera.name = "Camera";
camera.cost = 1500;
camera.payedOff = 0;
Service music = new Service();
music.name = "Music";
music.cost = 4000;
Service video = new Service();
video.name = "Video";
video.cost = 3000;
video.payedOff = 3000;
Service hotel = new Service();
hotel.name = "Hotel";
hotel.cost = 2100;
Service transport = new Service();
transport.name = "Transport";
transport.cost = 2000;
Service car = new Service();
car.name = "Car";
car.cost = 200;
if (????.payedOff >= ????.cost){
System.out.println(????.name + " been payed off");
} else {
System.out.println(????.name + " still need to pay");
}
}
}
我想摆脱在'OPHT'之前的第一个\ n(新行),以及减少多个换行组合在一起的新行。
如您所见,组合在一起的多个换行符的数量不是恒定的,而是从2到5不等(在原始字符串中甚至更多)。
似乎我不能只使用简单的`str.replace('\ n','')方法,因为它将摆脱所有的换行符,将所有的股票代码聚集在一起(我想要一个新行后每个股票代码) 我查看字符串文档,但我找不到一个str方法,可以让我干净利落地做我想做的事。
有什么建议吗?
谢谢。
答案 0 :(得分:1)
好的,我明白了:
如果x
是我的字符串变量,那么
import re
x = re.sub(r'\n{2, 10}', '', x) # \n is new line, {2,10} is the range of occurences of the newline that I'm searching for.
除了一个例外,这解决了问题。在某些情况下,尽管我只想要一个新行,但它正在删除所有新行。这导致某些代码被捆绑在一起,如下所示:
'GALE''CEMP'
所以我用另一个正则表达式来解决这个问题
import re
x = re.sub(r"''", "'\n'", x)
大多数情况下,现在一切都很好看。