gpt4 book ai didi

Java 方法未按预期执行。试图理解为什么

转载 作者:行者123 更新时间:2023-11-29 06:49:56 25 4
gpt4 key购买 nike

尝试编写一个 java 方法,它将接受一个字符串,遍历它并在它找到元音字母 (A,E,I,O,U,Y) 的地方用元音字母加“OB”替换它。

我已经写了下面的内容,但它没有像我预期的那样工作,而且似乎没有将我的字符串中的当前字符与我列表中的元音相匹配。 (该程序编译并运行,因此在开始时不导入必要的位不是问题。输入字符串将始终为大写并且仅包含字母。)我正在努力找出我哪里出错了。

有人能帮忙吗?

public static String obifyText(String text) {

String[] myList = new String[] {"A","E","I","O","U","Y"};
StringBuilder tempText = new StringBuilder(text);
String obify = "OB";
for (int i = 0; i < text.length() -1 ; i ++ ) {
if ( Arrays.asList(myList).contains(tempText.charAt(i)) ) {
System.out.println(tempText.charAt(i)+" found.");
tempText = tempText.insert((i+1),obify);
}
}

text = tempText.toString();
return text;
}

最佳答案

不要玩索引。

当您处理更改字符串时,使用索引进行管理可能会很困难。

按如下方式在 char 本身上循环:

public static void main(String[] args){
String[] myList = new String[] {"A","E","I","O","U","Y"};
String text = "AEE";
StringBuilder tempText = new StringBuilder("");
String obify = "OB";
for (char c : text.toCharArray()){
tempText = tempText.append(c);
if ( Arrays.asList(myList).contains(c+"") ) {
System.out.println(c+" found.");
tempText = tempText.append(obify);
}
}

text = tempText.toString();
System.out.println(text);
}

输出:

A found.
E found.
E found.
AOBEOBEOB

关于Java 方法未按预期执行。试图理解为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51908170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com