在每个元音之前添加文本

时间:2018-08-07 04:11:53

标签: java arrays string replace char

您好,我正在尝试在文本中的每个元音(A,E,I,O,U)之前添加字符串OB。我可以假定文本由所有大写字母组成,没有空格或标点符号。这些由我能够创建的其他方法处理。

这是我到目前为止的内容:

    // Display the admin options page
function options_page_fn() {

?>
    <div class="wrap">
        <div class="icon32" id="icon-options-general"><br></div>
        <h2>Settings</h2>
        Here you can update the details of your options.
        <form action="" method="post" name="options">
        <?php settings_fields('plugin_options'); ?>
        <?php do_settings_sections(__FILE__); ?>
        <?php $opt_api = plugin_options['api_key']; ?>
        <?php $opt_loc = plugin_options['loc_id']; ?>
        <?php $opt_app = plugin_options['app_id']; ?>
        <?php $opt_ulr = plugin_options['url']; ?>
        <?php wp_nonce_field( 'options_save', 'options_save_nonce' ); ?>
        <p class="submit">
            <input name="submit" id="submit" type="submit" class="button-primary" value="<?php esc_attr_e('Save Changes'); ?>" />
        </p>
        </form>

    </div>
<?php
if ( isset( $_POST['submit'] ) && ( $opt_api ) ) {
    if ( isset( $_REQUEST[ 'options_save_nonce' ] ) && wp_verify_nonce( $_REQUEST[ 'options_save_nonce' ], 'options_save' ) ) {

         $arr = array("api_key"=> $opt_api, "loc_id" => $opt_loc, "app_id" => $opt_app, "url" => $opt_ulr);
        update_option('plugin_options', $arr);
        echo "Updated" . $opt_api;
   }else{
       echo "Update Failed";
   }
}
else {
    echo "No API KEY";
}
}

但是当我通过它时,它会在第一个元音之前打印两个OB。 示例输入:HELLOWOLD,输出:HOBOBELLOBOWOBOLD

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

您可以使用正则表达式character class通过String#replaceAll“ OB {vowel}” 替换所有元音。例如

final String test = s.replaceAll("[AEIOU]", "OB$0");

$0表示匹配的字符串,即元音。


在结果中得到重复的“ OB”字符串的原因是因为您的for循环。问题是您在每次迭代中都添加了更多的元音,即“ OB”中的“ O”,因此当您达到“ O”迭代时,它将替换您添加的元音。