所以我在更换字符方面遇到了麻烦,但找到它们已经完成了。我的问题是代替复制只有一个代码是复制多个。
String NewText = "";
for( int i=0; i<Str.length(); i++ ) {
if( Str.charAt(i) == 'a' ) {
counter++;
String newText = Str.replace('a', '@');
NewText=newText;
} else if( Str.charAt(i) == 'e' ) {
counter1++;
String newText1 = Str.replace('e','3');
NewText=NewText+newText1;
}
}
System.out.println("Total vowels: "+counterTotal+" | "+counter5+ " y's");
System.out.println(NewText+" | Original text: "+Str);
我的问题是NewText变量保存所有文本而不仅仅是更改的字母。通过反复试验,我将不胜感激任何帮助,以改善此代码,使其正常工作。想象一下代码的其余部分,它只是替换了元音,但我怎样才能让我的代码检查大写字母而不复制粘贴?
答案 0 :(得分:0)
你应该试试这个:
public static void main(String[] args) {
String testStr = "TEST";
int count = count(testStr,'T');
String newStr = testStr.replaceAll("T", "3");
System.out.println("Total T: " + count);
System.out.println("Old:" + testStr +" | New: "+newStr);
}
public static int count(String str, char letter){
int counter = 0;
for( int i=0; i<str.length(); i++ ) {
if( Character.toUpperCase(str.charAt(i)) == Character.toUpperCase(letter)) {
counter++;
}
}
return counter;
}
方法count
将计算给定字母在给定str中出现的次数。尽管有字母大小写,我们在if中比较toUpperCase。现在你重用其他字母的代码,你不需要重复你的for循环,只需调用方法。在main方法中,我们调用count,然后使用replaceAll替换字母,替换给定参数的String中的所有字符。 String
类是不可变的,因此,它返回一个新的String。这是输出:
Total T: 2
Old:TEST | New: 3ES3
这解决了你的问题吧?
答案 1 :(得分:-2)
public static void main (String[]args){
String Str = "AEAEA";
int counter = 0;
int counter1 = 0;
String NewText = null;
for (int i = 0; i < Str.length(); i++) {
if (Str.charAt(i) == 'A') {
counter++;
String newText = Str.replace('A', '@');
System.out.println(newText);
NewText = newText;
} else if (Str.charAt(i) == 'E') {
counter1++;
String newText1 = Str.replace('E', '3');
NewText = NewText + newText1;
}
}
System.out.println("Nw " + NewText);
//System.out.println(NewText+" | Original text: "+Str);
}