Java 替换字符串中的字符更改数组中的元素
我有两个目标:Java 替换字符串中的字符更改数组中的元素,java,string,Java,String,我有两个目标: 从用户输入中获取两个字符串。第一个字符串的元音数量必须与第二个辅音数量相等 用第一个字符串中的连续辅音替换第二个字符串中的每个元音 例如: Input1: kajak Input2: kajaka Output: kkjjkk 我已经设法实现了第一个目标。然而,我有一个问题与第二个目标-改变数组中的字母。 我认为问题在于数组部分charSecond[I]=charFirst[I],因为输入的大小不同 编辑:我忘了在元音列表中添加大写字母,但忽略它,我会修复它 import
Input1: kajak
Input2: kajaka
Output: kkjjkk
我已经设法实现了第一个目标。然而,我有一个问题与第二个目标-改变数组中的字母。
我认为问题在于数组部分charSecond[I]=charFirst[I]
,因为输入的大小不同
编辑:我忘了在元音列表中添加大写字母,但忽略它,我会修复它
import java.util.Scanner;
public class Zad2 {
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
do {
System.out.println("Provide two strings: ");
String firstString = scn.next();
String secondString = scn.next();
char charSecond[] = secondString.toCharArray();
String firstWithoutVowels = firstString.replaceAll("[aeiouyAEIOUY]", "");
String secondWithoutConsonants = secondString.replaceAll("[BCDFGHJKLMNPQRSTVXZbcdfghjklmnpqrstvxz]", "");
char charFirst[] = firstWithoutVowels.toCharArray();
StringBuffer lengthOfFirst = new StringBuffer(firstWithoutVowels);
StringBuffer lengthOfSecond = new StringBuffer(secondWithoutConsonants);
if (lengthOfFirst.length() == lengthOfSecond.length()) {
for (int i = 0; i < charSecond.length; i++) {
if (charSecond[i] == 'a' || charSecond[i] == 'e' || charSecond[i] == 'i' || charSecond[i] == 'o' || charSecond[i] == 'u' || charSecond[i] == 'y') {
charSecond[i] = charFirst[i];
}
}
for (int i = 0; i < charSecond.length; i++) {
System.out.print(charSecond[i]);
}
break;
} else {
System.out.println("Wrong");
}
}
while (true);
}
}
import java.util.Scanner;
公开课Zad2{
公共静态void main(字符串[]args){
扫描仪scn=新扫描仪(System.in);
做{
System.out.println(“提供两个字符串:”);
String firstString=scn.next();
String secondString=scn.next();
char charSecond[]=secondString.toCharArray();
String firstwithout元音=firstString.replaceAll(“[aeiouyeiouy]”,“”);
String secondwithout辅音=secondString.replaceAll(“[BCDFGHJKLMNPQRSTVXZbcdfghjklmnpqrstvxz]”,”);
char charFirst[]=firstwithout元音。toCharArray();
StringBuffer lengthOfFirst=新的StringBuffer(第一个不带元音);
StringBuffer LengthofsSecond=新的StringBuffer(第二个不带辅音);
如果(lengthOfFirst.length()=lengthOfSecond.length()){
for(int i=0;i
在if(lengthOfFirst.length()==lengthOfSecond.length())条件之前初始化int c=0
替换代码(循环的第一个代码),如下所示:
for (int i = 0; i < charSecond.length; i++) {
if (charSecond[i] == 'a' || charSecond[i] == 'e' || charSecond[i] == 'i' || charSecond[i] == 'o' || charSecond[i] == 'u' || charSecond[i] == 'y') {
charSecond[i] = charFirst[c];
c++;
}
}
for(int i=0;i
您好,我刚刚编辑了这篇文章,现在有关于数组中特定问题替换字母的信息。我的问题不能发布在Code Review上,因为它不是优化或安全问题/工作代码的审查(我的回答基于Codereview网站上的“我可以在这里问什么话题?”我想对我在帖子中使用的错误词语表示歉意,现在应该是正确的。感谢您检查Code Review的规则AdamK。你是对的,这是离题的。