java - 我无法让程序按顺序重复输出

标签 java

我想设计一个缩放字符串的程序。如果字符串 d = "abc\ndef\nghi",水平缩放=2,垂直缩放=2,则scaleObj.scale(d,2,2)/定义如下/应输出“aabbcc\naabbcc\nddeeff\nddeeff\ngghhii\ngghhii”。

//output

aabbcc
aabbcc
ddeeff
ddeeff
gghhii
gghhii

我有一个问题,我定义如下:

//MainSix.java

public class MainSix{
    public static void main(String[] args){
        Scale scaleObj = new Scale();
        System.out.println(scaleObj.scale("abc\ndef",2,3));
    }

}

class Scale {

    public static String scale(String strng, int k, int v) {

        //Horizontal Scalling -k
        String s=strng.replaceAll(".", repeat("$0",k));

        //Verical Scalling
        String y = repeat(s,v);

        return y;

    }
    public static String repeat(String str, int times){
        return new String(new char[times]).replace("\0", str);
    }
}

当我编译这个时,我得到输出

aabbcc
ddeeffaabbcc
ddeeffaabbcc
ddeeff

//aabbcc\nddeeffaabbcc\n\nddeeffaabbcc\nddeeff

如何获得输出

aabbcc
aabbcc
aabbcc
ddeeff
ddeeff
ddeeff

//aabbcc\naabbcc\n\naabbcc\nddeeffddeeff\nddeeff

请修改此现有代码

最佳答案

如果您希望 abc\ndef 在小数位数设置为 2 时等于 aabbcc\nddeeff。

您可以将字符串拆分为标记(字符),然后用它自乘的比例因子替换每个字符。

a 将替换为 aa、b => bb、c => cc 等

在下面的示例中,我只是使用输出创建一个新字符串,而不是替换输入中的值(其主要偏好)。

int scale = 2;
String s = "abc", ss = "";
for (char c : s.toCharArray()) { 
  for (int i = 0; i < scale; i++) {
    ss += c;
  }
}
System.out.println(ss); //ss = aabbcc

编辑1:

int scale = 2, rpt = 3;
String s = "abc\ndef", ss = "";
for (String t : s.split("\n")) { //Word loop
  for (int j = 0; j < rpt; j++) { //Repeat loop
    for (char c : t.toCharArray()) { //Char loop
      for (int i = 0; i < scale; i++) { //Scale loop
        ss += c;
      }
    }
    ss += "\n";
  }
}
System.out.println(ss); 
/*
aabbcc
aabbcc
aabbcc
ddeeff
ddeeff
ddeeff
*/

关于java - 我无法让程序按顺序重复输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38831812/

相关文章:

java - 仅匹配正则表达式中括号内的内容

java - spring 如何知道要使用哪个 View 解析器?

java - 使用 VTD-XML 的 log4j.xml 上的 XPath

java - 为什么 Jackson 的 pretty-print 功能不起作用?

java - Apache Camel 中 Java DSL 相对于 Spring DSL 有哪些优势?

java - Java中的输入表单

java - spring mvc 建立多对一关系

java - Apache Spark - 无法理解 scala 示例

java - 在 Spark 结构化流处理中处理二进制数据

java - 将命令行参数传递给多个 java 线程