#The number of cars that you can put in garage = 4
t1n1b2p2t1m1b2a2
v1j1t1c1b3t1b1a1m1j1b4
#The number of cars that you can put in garage = 4
Tesla Nissan BMW+ | Porsche+ Tesla Maserati | BMW+ Audi+ |
Volvo Jaguar Tesla Cadillac | BMW++ Tesla | BMW Audi Maserati Jaguar | BMW+++ |
#The number of cars that you can put in garage is different
^3
t1b1t1b3
^2
m2a1t1
^4
a4v2p2
#The number of cars that you can put in garage is different
#Number of cars = 3
Tesla BMW Tesla | BMW++ |
#Number of cars = 2
Maserati+ | Audi Tesla |
#Number of cars = 4
Audi+++ | Volvo+ Porsche+ |
首先是代码。代码后的解释。
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Garages {
private static final Map<Character, String> CAR_MAKES = Map.of('a', "Audi",
'b', "BMW",
'c', "Cadillac",
'j', "Jaguar",
'm', "Maserati",
'n', "Nissan",
'p', "Porsche",
't', "Tesla",
'v', "Volvo");
private static final Pattern REGEX = Pattern.compile("\\d+$");
private static String handleLine(String line, int limit) {
StringBuilder result = new StringBuilder();
int total = 0;
char[] letters = line.toCharArray();
for (int j = 0; j < letters.length; j++) {
if (j % 2 == 0) {
// should be a letter
String make = CAR_MAKES.get(letters[j]);
result.append(make);
}
else {
// should be a number
int amount = letters[j] - '0';
for (int k = 1; k < amount; k++) {
result.append('+');
}
result.append(' ');
total += amount;
if (total >= limit) {
result.append("| ");
total = 0;
}
}
}
return result.toString();
}
private static String handleLines(String[] lines) {
StringBuilder result = new StringBuilder();
result.append(lines[0]);
result.append(System.lineSeparator());
Matcher matcher = REGEX.matcher(lines[0]);
int limit = 0;
boolean hasLimit = matcher.find();
if (hasLimit) {
limit = Integer.parseInt(matcher.group());
}
for (int i = 1; i < lines.length; i++) {
if (hasLimit) {
result.append(handleLine(lines[i], limit));
}
else {
if (i % 2 == 1) {
// amount line
limit = Integer.parseInt(lines[i].substring(1));
result.append("#Number of cars = " + limit);
}
else {
result.append(handleLine(lines[i], limit));
}
}
result.append(System.lineSeparator());
}
return result.toString();
}
private static String handleInput(String input) {
return handleLines(input.split("\n"));
}
public static void main(String[] args) {
String first = """
#The number of cars that you can put in garage = 4
t1n1b2p2t1m1b2a2
v1j1t1c1b3t1b1a1m1j1b4
""";
System.out.println(handleInput(first));
String second = """
#The number of cars that you can put in garage is different
^3
t1b1t1b3
^2
m2a1t1
^4
a4v2p2
""";
System.out.println("====================================================================");
System.out.println(handleInput(second));
}
}
main
中的变量first
和second
)在文本块中,行分隔符是\n
。。我根据您问题中的数据填充了地图。
map
键类型必须是类(而不是基元)。因此,密钥类型是java.lang.character
(而不是char
)。自动装箱将字符
文本自动转换为字符
对象。 - 输入的第一行决定了应该如何解析和处理其余的输入。我为此使用正则表达式。我检查输入的第一行是否以数字结尾。
- 在第一行之后,我假设输入的每一行都是
^
字符,后面跟着一个数字,或者是每一个奇数字符(即第一、第三、第五等)是一个字母,每一个偶数字符是一个数字。因此,如果输入不遵循此模式,代码可能会抛出异常或给出不正确的结果。
希望代码的其余部分是清晰的和自解释的。
#The number of cars that you can put in garage = 4
Tesla Nissan BMW+ | Porsche+ Tesla Maserati | BMW+ Audi+ |
Volvo Jaguar Tesla Cadillac | BMW++ Tesla | BMW Audi Maserati Jaguar | BMW+++ |
====================================================================
#The number of cars that you can put in garage is different
#Number of cars = 3
Tesla BMW Tesla | BMW++ |
#Number of cars = 2
Maserati+ | Audi Tesla |
#Number of cars = 4
Audi+++ | Volvo+ Porsche+ |
问题内容: 我想读取一个包含空格分隔值的文本文件。值是整数。如何读取并将其放入数组列表? 这是文本文件内容的示例: 我想将它包含在arraylist中。如何用Java做到这一点? 问题答案: 你可以用来将文本文件的所有行都放入。 教程:基本文件读取,写入和创建文本文件 你可以用来基于正则表达式拆分部分。 教程:数字和字符串>字符串>操纵字符串中的字符 你可以使用将转换为。 教程:数字和字符串>字符
问题内容: 如何从Java中classpath读取文本文件? 问题答案: 在类路径上的目录中,从同一类加载器加载的类中,你应该能够使用以下任一种: 如果这些都不起作用,则表明还有其他问题。 因此,例如,使用以下代码: 而这个目录结构: 然后(使用Linux机器上的Unix路径分隔符): 结果:
问题内容: 我有一个文本文件。我想从一行到另一行检索内容。例如,文件可以是200K行。我想从第78行到第2735行读取内容。由于文件可能很大,所以我不想将整个内容读取到内存中。 问题答案: 这是一个可能的解决方案的开始:
问题内容: 我正在制作一个日志,我想读取log.txt文件的最后一行,但是在读取最后一行时,我无法使BufferedReader停止。 这是我的代码: 问题答案: 这是一个很好的解决方案。 在代码中,您可以仅创建一个名为的辅助变量,并不断将其初始化为当前行,如下所示:
可以使用FileReader直接读取文本文件 我们为什么需要使用InputStream方法
本文向大家介绍如何使用python读取Selenium中的文本文件?,包括了如何使用python读取Selenium中的文本文件?的使用技巧和注意事项,需要的朋友参考一下 我们可以通过先创建一个txt文件并在其中包含内容,来使用python阅读Selenium中的文本文件。 首先,我们需要打开文件并提及文本文件位置的路径作为参数。有多种读取方法可以执行这些操作。 read() –读取文件的全部内容