关于java:在单词的每个字母之间插入一个数字

Inserting a number between each letter of a word

我有一个项目要求我在一个单词的每个字母后面插入一个随机数(0到9之间),有什么方法可以做到这一点吗?

1
System.out.println(sent.replaceAll(".(?!$)","$0"));

我可以使用此代码在每个字母之间获得一个空格,但我不确定如何随机插入数字

1
2
Input = Table
Output would = T8a9b6l2e4


在这种情况下,Stream可能很有用:

1
2
3
4
5
6
final Random rand = new Random();
String str ="string";
str = Stream.of(str.split("")).map(
             x -> x + Integer.valueOf(rand.nextInt(10))
      ).collect(Collectors.joining());
System.out.println(str); // s8t9r6i0n1g6

我们在字符串中获得单个字母流,并为每个字符串添加一个随机数。 最后,我们将所有内容连接起来以获得最终字符串

一个小小的更新。 由于java-8 String类具有返回字符流的chars方法。 所以我们可以直接使用它而不拆分原始字符串。 例如:

1
2
3
4
5
6
Random rand = new Random();
String str ="string";
str = str.chars().mapToObj(
          c -> String.valueOf((char)c) + rand.nextInt(10)
      ).collect(Collectors.joining());
System.out.println(str); // s5t7r8i4n3g1

像这样的东西。 不完美/优化,但应该做的工作。

1
2
3
4
5
6
7
8
9
10
    final int min = 0;
    final int max = 9;
    final String inputString="testingThisString";
    String str ="";
    final Random random = new Random();
    for(final char c: inputString.toCharArray()){
        final int randomNumber = random.nextInt(max - min) + min;
        str += c +"" + String.valueOf(randomNumber);
    }
    System.out.println(str);


1
2
3
4
5
6
7
String sent="a b c d e f";
Random r=new Random();
while(sent.contains("")){
    int f= random.nextInt(9-0+1)+0;
    sent=sent.replaceFirst("",String.valueOf(f));
}
System.out.println(sent);

这应该工作,如果没有,它可能会让你知道如何解决它

随机int的代码:生成1到10个Java之间的随机数