这是我关于Stack Overflow的第一篇文章,请原谅! :)
我有一个包含403个波兰车牌符号和县的列表。看起来像这样:
BIA powiatbiałostocki
BBI powiat bielski
BGR powiat grajewski
CT托伦 等
我编写了一个代码,该代码使我可以将第一个空格转换为“ =”。
x = tf.cast(x, tf.float32)
我如何进行循环(for?while吗?)来更改所有403条记录?我将不胜感激任何帮助。先感谢您!
答案 0 :(得分:4)
如果您的列表是List<String>
,则可以执行以下操作:
for (for int i = 0, i < yourList.size(), i++) {
yourList.set(i, yourList.get(i).replaceFirst(" ", "="));
}
此处提供了其他循环方式:https://crunchify.com/how-to-iterate-through-java-list-4-way-to-iterate-through-loop/
最佳
答案 1 :(得分:0)
您也可以使用Stream API。例如,如果您要过滤所有无效的字符串
List<String> registrations = new ArrayList<>(5);
registrations.add("BIA powiat białostocki");
registrations.add("BBI powiat bielski");
registrations.add("BGR powiat grajewski");
registrations.add("BGGHND");
registrations.add("CT Toruń etc.");
registrations = registrations.stream()
.filter(registration -> registration.split(" ").length>1)
.map(registration -> registration.replaceFirst(" ","="))
.collect(Collectors.toList());
输出:
BIA=powiat białostocki
BBI=powiat bielski
BGR=powiat grajewski
CT=Toruń etc.
答案 2 :(得分:0)
正如您提到的如何进行循环,那么我建议首先学习Java循环语法。以下教程可能会有所帮助
https://books.trinket.io/thinkjava2/chapter6.html
https://www.codingame.com/playgrounds/6162/6-ways-to-iterate-or-loop-a-map-in-java
关于解决方案,您可以使用for / while循环或使用Stream API循环列表。这是使用流API的解决方案:
List<String> lists = new ArrayList<>();
lists.add("BAU powiat augustowski");
lists.add("BBI powiat bielski");
lists = lists.stream()
.map(s -> s.replaceFirst("\\s", "="))
.collect(toList());
答案 3 :(得分:0)
如果您使用的是ArrayList或HashSet,则可以使用两种方式:
Fyi:假设您的列表名称为 registrationList ,并且其中包含对象名称 注册
一个for循环:
for(Registration registration : registrationList){
registration.replaceFirst(" ", "=");
}
或者您可以使用流:
registrationList.stream.forEach(registration-> registration.replaceFirst(" ", "="));
答案 4 :(得分:0)
如果txt文件中包含所有行,并且您想通过将第一个空格替换为=
来进行修改,则可以使用流API,例如:
List<String> collect = Files.lines(Paths.get(PATH_TO_FILE)).stream()
.map(s -> s.replaceFirst(" ", "="))
.collect(toList());
Files.write(PATH_TO_FILE, collect, StandardOpenOption.CREATE);