当前位置: 首页 > 面试题库 >

如何在Java中制作没有任何for循环的String替换程序?

温凯
2023-03-14
问题内容

例如 :-

String str = "Hello How are u!"

彼此替换字符。

a one
e two
i three
o four
u five

输出

Htwollfour Hfourw onertwo five!

我该怎么做而没有任何循环?


问题答案:

一种方法是使用流。和地图:

Map<Character, String> mapping = new HashMap<>();
mapping.put('a', "one");
mapping.put('e', "two");
mapping.put('i', "three");
mapping.put('o', "four");
mapping.put('u', "five");

String res = "Hello How are u!".chars()
        .mapToObj(ch -> mapping.getOrDefault((char) ch, 
                                  Character.toString((char) ch)))
        .collect(Collectors.joining());

System.out.println(res);

那打印 Htwollfour Hfourw onertwo five!



 类似资料:
  • 我正在编写一个密码学程序,将密文转换为明文。根据字母的频率,我手动将密码的所有字母破解为明文,并且没有模式,所以我需要编写一个包含26次的循环,将字符串中的每个字母转换为另一个字母。 我的第一次尝试是在java中使用replace语句,如下所示 问题是,例如,我输入这样的字符串,我的键将是这样的“用c替换a,用p替换b,用q替换c”。我想要的输出应该是,但我得到的输出是。这意味着我希望它是一次性的

  • 到目前为止,我的计划是: 现在我需要它做的是生成一个从华氏度到摄氏度的20个温度转换表。如果用户输入 0,下面是输出可能是什么样子的前 3 行的示例: 华氏温度:0摄氏度:-17.78 华氏度: 5 摄氏度: -15.00 华氏:10摄氏度-12.22度 等… 问题是,如果输入大于20,它将不会循环正确的次数。 下面是一个例子,说明如果用户输入5: 输出: 输入您的起始温度(华氏:5)。 华氏摄氏

  • 问题内容: 我有下面的简单代码,我试图将其转换为功能样式 是否可以轻松地用流替换此循环?我看到的唯一选择是使用两个不同的过滤条件在流上迭代两次。 问题答案: 听起来您可以只使用以下条件: 简短但完整的示例,将短字符串映射为小写,将长字符串映射为大写:

  • 问题内容: 我在进行函数调用时试图找到for-each循环的工作方式。请参阅以下代码, 在版本1中,我在for- each循环中调用returnArr()方法,在版本2中,我显式调用returnArr()方法并将其分配给数组,然后对其进行迭代。两种方案的结果都相同。我想知道哪个更有效以及为什么。 我认为版本2会更高效,因为我不会在每次迭代中都调用method。但是令我惊讶的是,当我使用版本1调试代

  • 问题内容: 这是一个非常简单的for循环: 我知道它主要如何工作,但是我不明白最后的工作方式:如果我是对的,它应该加1,但是当它打印出时,它先打印0,然后再打印1。 为什么为什么不从1开始就因为?为什么仍然只打印出原始值而不是原始值? 问题答案: 一个循环的工作方式如下: 初始化完成(在您的情况下;仅执行一次) 条件检查(此处),如果条件为假,则退出循环 大括号内的代码已执行(根据您的情况) 更新

  • 在我的任务中,当用户试图输入一些值时,我需要放置InputMismatchException。用户获取从1到某个数字的一些数字(simptoms.lenght)。 在这段代码之后,我尝试了这样做:我尝试了try(!scanner.hasnextInt()),而不是while(!scanner.hasnextInt),我得到了以下消息: