相关疑难解决方法(0)

在java中重复String的简单方法

我正在寻找一个简单的公共方法或运算符,它允许我重复一些字符串n次.我知道我可以使用for循环来编写它,但我希望在必要时避免使用循环,并且某处应该存在一个简单的直接方法.

String str = "abc";
String repeated = str.repeat(3);

repeated.equals("abcabcabc");
Run Code Online (Sandbox Code Playgroud)

相关:

repeat string javascript 通过重复给定次数的另一个字符串来创建NSString

编辑

当他们不是完全必要的时候我试着避免循环,因为:

  1. 即使它们隐藏在另一个函数中,它们也会增加代码行数.

  2. 读我的代码的人必须弄清楚我在循环中做了什么.即使它被评论并且具有有意义的变量名称,它们仍然必须确保它没有做任何"聪明"的事情.

  3. 程序员喜欢把聪明的东西放在for循环中,即使我把它写成"只做它想要做的事情",这并不排除有人出现并增加一些额外的聪明"修复".

  4. 他们经常容易出错.对于涉及索引的循环,往往会产生一个错误.

  5. For循环经常重用相同的变量,增加了很难找到范围错误的机会.

  6. For循环增加了bug猎人必须看的地方数量.

java string

543
推荐指数
18
解决办法
45万
查看次数

Java中的命令行进度条

我有一个在命令行模式下运行的Java程序.我想显示一个进度条,显示完成工作的百分比.你会在unix下使用wget看到同样的进度条.这可能吗?

java command-line progress-bar

121
推荐指数
6
解决办法
8万
查看次数

如何在java中获得整数的0填充二进制表示?

例如,1, 2, 128, 256输出可以是(16位):

0000000000000001
0000000000000010
0000000010000000
0000000100000000
Run Code Online (Sandbox Code Playgroud)

我试过了

String.format("%16s", Integer.toBinaryString(1));
Run Code Online (Sandbox Code Playgroud)

它为左边填充放置空格:

`               1'
Run Code Online (Sandbox Code Playgroud)

如何将0s用于填充.我在Formatter中找不到它.还有另一种方法吗?

提前致谢.

PS 这篇文章描述了如何使用左0填充格式化整数,但它不适用于二进制表示.

java binary string-formatting

113
推荐指数
7
解决办法
12万
查看次数

如何使用String.format使字符串居中?

public class Divers {
  public static void main(String args[]){

     String format = "|%1$-10s|%2$-10s|%3$-20s|\n";
     System.out.format(format, "FirstName", "Init.", "LastName");
     System.out.format(format, "Real", "", "Gagnon");
     System.out.format(format, "John", "D", "Doe");

     String ex[] = { "John", "F.", "Kennedy" };

     System.out.format(String.format(format, (Object[])ex));
  }
}
Run Code Online (Sandbox Code Playgroud)

输出:

|FirstName |Init.     |LastName            |
|Real      |          |Gagnon              |
|John      |D         |Doe                 |
|John      |F.        |Kennedy             |
Run Code Online (Sandbox Code Playgroud)

我希望输出居中.如果我不使用' - '标志,则输出将与右侧对齐.

我没有在API中找到中心文本的标志.

文章有关于格式的一些信息,但没有对中心自圆其说.

java string format string-formatting

15
推荐指数
5
解决办法
5万
查看次数

Java - 使用格式化程序标志从左侧截断字符串

我有一个字符串,说:

String s = "0123456789";
Run Code Online (Sandbox Code Playgroud)

我想用格式化程序填充它.我可以这两种方式:

String.format("[%1$15s]", s); //returns [     0123456789]
Run Code Online (Sandbox Code Playgroud)

要么

String.format("[%1$-15s]", s); // returns [0123456789     ]
Run Code Online (Sandbox Code Playgroud)

如果我想截断我做的文字

String.format("[%1$.5s]", s);  // returns [01234]
Run Code Online (Sandbox Code Playgroud)

如果我想从左边截断,我想我可以这样做:

String.format("[%1$-.5s]", s); // throws MissingFormatWidthException
Run Code Online (Sandbox Code Playgroud)

但这失败了,所以我尝试了这个:

String.format("[%1$-0.5s]", s); // throws MissingFormatWidthException
Run Code Online (Sandbox Code Playgroud)

以及:

String.format("[%1$.-5s]", s); // throws UnknownFormatConversionException
Run Code Online (Sandbox Code Playgroud)

那么如何使用格式标志从左侧截断?

java string-formatting

12
推荐指数
2
解决办法
6653
查看次数

在Kotlin重复n次

我想创建一个string包含*符号n时间的内容.我只看到这种方式:

val s = ""
val n = 100
for (j in 0 until n) {
    s += "*"
}
Run Code Online (Sandbox Code Playgroud)

但它看起来很丑陋,而且时间复杂度为O(n ^ 2).Kotlin有没有办法在没有时间复杂度更高的循环的情况下做到这一点?

kotlin

6
推荐指数
2
解决办法
2902
查看次数

如何创建长度由多次重复相同字符组成的字符串?

如果我想要一个String sn字符实例组成的字符A,那么这可以用Java做得更干净

public static String stringOfSize(int size, char ch) {
    StringBuilder s = new StringBuilder();
    while (size-- > 0) {
        s.append(ch);
    }
    return s.toString();
}
Run Code Online (Sandbox Code Playgroud)

我们可以做得更好吗?就是想.

java

5
推荐指数
2
解决办法
1万
查看次数