20

如何在java中切片字符串?我从 csv 和 xls 中获取行,例如单元格中的数据就像

14.015_奥迪

我怎么能说 java 它必须在 _ 之前只看一部分?所以在操作之后我必须有 14.015。在rails中我会用gsub来做这个,但是在java中怎么做呢?

4

5 回答 5

26

您可以使用String#split

String s = "14.015_AUDI";
String[] parts = s.split("_"); //returns an array with the 2 parts
String firstPart = parts[0]; //14.015

您应该添加错误检查(例如,数组的大小符合预期)

于 2012-08-26T14:10:47.800 回答
17

而不是创建一个新列表并具有两次副本的拆分,我会使用子字符串,它适用于原始字符串并且不会创建新字符串

String s = "14.015_AUDI";
String firstPart = s.substring(0, s.indexOf("_"));
于 2012-08-26T14:28:31.603 回答
4
String str = "14.015_AUDI";
String [] parts = str.split("_");

String numberPart = parts[0];
String audi = parts[1];
于 2012-08-26T14:10:58.850 回答
2

应该更短:

"14.015_AUDI".split("_")[0];
于 2017-06-27T05:51:43.507 回答
0

番石榴有分离器

List<String> pieces = Splitter.on("_").splitToList("14.015_AUDI");
String numberPart = parts.get(0);
String audi = parts.get(1);
于 2013-10-17T23:10:14.127 回答