我收到了一个文本文件,其中5K +名称全部为大写字母,全部为“双引号”。我用逗号分隔了所有的名字,所以我有一个填充了引号中的名字的填充字符串[]。我需要删除名称中的所有引号,我已尝试使用.trim('“')但不断出错。
这是我的代码:
public class NameScore {
public static void main(String[] args) throws IOException {
//File path to name list
String NAME_LIST = "/Users/BR/NameScores/src/p022_names.txt";
//imports the file with names
Scanner input = new Scanner(new File(NAME_LIST));
//Array list that holds the appx. 5K names. Each name split by a comma
String[] nameList = (input.nextLine()).split(",");
//puts the list into alphabetical order.
Arrays.sort(nameList);
for (int i = 0; i < nameList.length; i++) {
//nameList[i] = nameList[i].trim('"');
System.out.println(nameList[i]);
}
}
}
答案 0 :(得分:1)
您可以将正则表达式与String.replaceAll(String, String)
一样使用
System.out.println(nameList[i].replaceAll("\"", ""));
答案 1 :(得分:1)
如@ScaryWombat的评论中所述,如果这是一个有效的CSV文件,您可以使用CSV库(such as opencsv):
CSVReader reader = new CSVReader(new FileReader(".../p022_names.txt"));
List<String[]> allLines = reader.readAll();
for(String[] line: allLines){
for(String field: line){
System.out.print(field + "\t");
}
System.out.println();
}
CSVReader将:
opencsv的maven依赖 :
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>3.7</version>
</dependency>
答案 2 :(得分:0)
使用inputString.replaceAll(“[\ - \ + \。\ ^:,]”,“”);