gpt4 book ai didi

java - 如何打印给定字符串中的以下元素?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:54:39 26 4
gpt4 key购买 nike

给定一个输入:

a3b4c5

输出应该是:

aaabbbbccccc

我是怎么做到这个程序的?

我在输入中有一个来自用户的字符串,然后检查它的字母是否在前。
如果它是字母表,递增直到它达到要打印到的计数器编号。
我试图产生相同的输出,但我得到以下一行作为输出。

显示的输出:

代码:

public class Pattern
{
public static void main(String s[]) throws NumberFormatException, IOException {

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s1 = br.readLine();
char ch[] = s1.toCharArray();
for (int i = 0; i < ch.length;) {
if ((ch[i] <= 65) || (ch[i] >= 90)) {
i++;
} else if ((ch[i] <= 97) || (ch[i] >= 122)) {
i++;
} else {
if (ch[i] == '0' || ch[i] == '1' || ch[i] == '2'
|| ch[i] == '3' || ch[i] == '4' || ch[i] == '5'
|| ch[i] == '6' || ch[i] == '7' || ch[i] == '8'
|| ch[i] == '9') {
for (int p = 0; p < ch[i]; p++) {
System.out.println(ch[i - 1]);

}
}
i++;
}
}
}
}

最佳答案

示例代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Pattern
{
public static void main(String s[]) throws NumberFormatException, IOException {

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter input string: ");
String inputStr = br.readLine();

ArrayList<String> stringParts = new ArrayList<>();
Matcher matcher = Pattern.compile("\\D+|\\d+").matcher(inputStr);
while (matcher.find())
{
stringParts.add(matcher.group());
}

// Just to view the contents
System.out.println("stringParts: " + Arrays.toString(stringParts.toArray()));

StringBuilder sb = new StringBuilder();
for(int i = 0; i < stringParts.size(); i += 2) {
for(int j = 0; j < Integer.parseInt(stringParts.get(i + 1)); j++) {

sb.append(stringParts.get(i));
}
}

System.out.println("Output: " + sb.toString());
}
}

输入/输出:

Enter input string: a3b4c5
stringParts: [a, 3, b, 4, c, 5]
Output: aaabbbbccccc

Enter input string: ab2cd3
stringParts: [ab, 2, cd, 3]
Output: ababcdcdcd

Enter input string: abc1def2xyz3
stringParts: [abc, 1, def, 2, xyz, 3]
Output: abcdefdefxyzxyzxyz


  • 使用模式匹配器,将输入字符串拆分为字母和数字 block
  • 使用字符串生成器相应地附加它们


注意:

这应该是某种形式的 Run-length encoding ,或在这种情况下解码。

关于java - 如何打印给定字符串中的以下元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31714000/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com