【问题标题】:I have got a string, and want this to be repeated 'l' times in java我有一个字符串,并希望在 java 中重复 'l' 次
【发布时间】:2015-10-26 13:44:10
【问题描述】:

从一个循环中,我会得到l 的值。 假设这个值为 3。 因此,我希望一个字符串重复 3 次。这意味着我想做字符串 * l,但是这是不可能的,因为一个是字符串,一个是 int。我确实需要将字符串重复l 次。

例如如果输入的字符串是"cat" 并且l 的结果为3,我将得到"catcatcat" 的输出。 谢谢你

这是我的代码:

import java.util.Scanner;

public class Task2 { 
    public static void main (String[] args){
        Scanner kb=new Scanner(System.in); 


        System.out.println("Please give me a message:"); 

        String strMessage = ("^[?=.*!@#$%^&*]+$");
        strMessage=kb.nextLine();



        System.out.println("Thank you! Now please give me a keyword:"); 

        String strKeyword=kb.nextLine();    

        String strAlphabet= "abcdefghijklmnopqrstuvwxyz";

        double Intlength2 = strKeyword.length();
        double Intlength = strMessage.length(); 
        double Intlength3 = Intlength/Intlength2;
        Intlength3 = Intlength/Intlength2;

        for (int l=0; l<Intlength3; l++){ 

【问题讨论】:

  • 是否编译:String strMessage = ("^[?=.*!@#$%^&amp;*]+$");?
  • 您的代码似乎与您的描述不符
  • 暂时没有,但一旦我解决了我的真正问题,我会稍后修复该部分
  • 我不明白你为什么要这样声明strMessage 而从不使用它的值。您还初始化Intlength3,然后重新为其分配 完全相同 值。那是怎么回事?您也不要在此代码 sn-p 中使用strAlphabet。这是一个更大项目的一部分吗?
  • @DegenSharew 是的。只是不需要括号。

标签: java string integer


【解决方案1】:
  1. 创建一个StringBuilder 并附加字符串l

    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < l; ++i) {
        sb.append(string);
    }
    
    String result = sb.toString();
    
  2. 如果你使用 Java 8,还有这个“简单”的单行:

    String result = IntStream.range(0, l).mapToObj(i -> string).collect(Collectors.joining());
    
  3. 使用 Guava 库的解决方案:

    String result = Strings.repeat(string, l);
    
  4. 使用 Apache Commons 库的解决方案:

    String result = StringUtils.repeat(string, l);
    

附带说明,l 不是一个好的变量名,因为它看起来像第一名。

【讨论】:

    【解决方案2】:

    这里还有 2 个 Java 8 单行代码:

    String result = Stream.generate(() -> "cat").limit(3).collect(Collectors.joining());
    String result = Collections.nCopies(3, "cat").stream().collect(Collectors.joining());
    

    【讨论】:

      猜你喜欢
      • 2012-12-06
      • 2018-07-27
      • 2019-06-23
      • 2019-12-08
      • 2015-10-16
      • 2017-04-28
      • 2017-01-16
      • 2010-12-25
      相关资源
      最近更新 更多