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 |
-
你能举一些样本输入和输出的例子吗? 没有它,它只是纯粹的猜测
-
如果每个字母之间有空格,则可以用随机数替换它们
-
是的,有一种方法可以轻松完成,但可能不使用正则表达式。 正则表达式不擅长生成随机数字。 最好使用一些更标准的Java代码,其中有一个类Random,可以轻松生成一个随机数字。
-
sent = sent.replaceFirst("",r); 问题只是这段代码,Random无法转换为字符串所以我该怎么解决这个问题(Netbeans)
-
@Hexed现在修复了这个错误。 检查更新的答案
在这种情况下,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之间的随机数
-
谢谢,它说r.next()上有错误;它需要一个int
-
我稍微更新了我的代码。唯一的问题是在更换时的问题。你必须在那里找到一些东西
-
sent=sent.replaceFirst("",r);,您正在将Random对象转换为String
-
我知道。我已经说过会有错误。我现在已经更新了。唯一要做的就是限制生成的整数范围
-
每个字母之间是否有空格?否则,最简单和最快的方法就是遍历整个事物并创建一个新字符串,其中包含来自输??入的字母和来自随机内容的数字。
-
我发现这段代码比较顺畅。可能是你是对的。是的,每个字母之间都有空格,因为op能够在每个字母之间插入一个空格
-
哈哈,我明白你的意思了。然后,如果你这样说它是有道理的,但它确实使空间插入的东西有点多余。我喜欢replaceFirst()的想法:)
-
对不起,没看到。是的,我有另一个任务的问题。任何人都可以帮我写一个代码来确定输入的数字是否是一个有序数字(如果数字的前半部分减去后半部分= 1例如123122; 123-122 = 1)并且还要查明订购的数字是否是有序的正方形(有序的正方形是一个完美的正方形的有序数,例如8281)
-
为此写一个新问题并尝试使其更清晰。我作为非英国人不明白你的问题是什么。也许其他人呢
-
@Hexed在询问之前也做一些研究,否则你的问题将作为HomeWork问题关闭
-
作为英语发言者我不明白,我做过研究。找不到任何东西。我每90分钟只能发一个问题。所以:如果数字的前半部分减去数字的后半部分= 1,则它是有序数字。如果相同的数字具有整数平方根,则它是有序正方形。例如。 8281是有序数字和平方。我尝试过一个代码,允许用户输入一个数字,然后检查数字是否为Ordered square和prime,如果该数字是Ordered数字则打印出来,如果是正方形则打印出Ordered square
-
然后等待90分钟,并用显示的代码写出完整的问题,依此类推。这将使你更容易帮助你