Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从文件中每行的开头列出字符串_Java_Regex - Fatal编程技术网

Java 从文件中每行的开头列出字符串

Java 从文件中每行的开头列出字符串,java,regex,Java,Regex,如果我有一个像下面这样的属性文件,那么制作“环境”字符串列表的最简单方法是什么 鉴于: qa1.url=qa1.com qa1.log=qa.log qa2.url=qa2.com qa2.log=qa.log prod.url=production.com prod.log=prod.log 我想用[qa1,qa2,prod]填充一个下拉列表。regex是最好的方法吗?如果保证环境是第一位的,那么该方法将起作用: String s = "qa1.url=qa1.com" String r =

如果我有一个像下面这样的属性文件,那么制作“环境”字符串列表的最简单方法是什么

鉴于:

qa1.url=qa1.com
qa1.log=qa.log
qa2.url=qa2.com
qa2.log=qa.log
prod.url=production.com
prod.log=prod.log

我想用[qa1,qa2,prod]填充一个下拉列表。regex是最好的方法吗?

如果保证环境是第一位的,那么该方法将起作用:

String s = "qa1.url=qa1.com"
String r = s.split("\\.")[0] // should be 'qa1'

如果保证环境是第一位的,那么该方法将起作用:

String s = "qa1.url=qa1.com"
String r = s.split("\\.")[0] // should be 'qa1'

是的,正则表达式可能是一个很好的方法。您还可以使用Scanner并将分隔符设置为从点开始到行尾的所有内容,包括行分隔符:

Scanner sc = new Scanner(new File("input.txt"));
sc.useDelimiter("\\..*?(\r?\n|$)");

Set<String> set = new HashSet<>();
while (sc.hasNext()){
    set.add(sc.next());
}

是的,正则表达式可能是一个很好的方法。您还可以使用Scanner并将分隔符设置为从点开始到行尾的所有内容,包括行分隔符:

Scanner sc = new Scanner(new File("input.txt"));
sc.useDelimiter("\\..*?(\r?\n|$)");

Set<String> set = new HashSet<>();
while (sc.hasNext()){
    set.add(sc.next());
}