这段代码是一系列任务,第一个是将句子字符串中的所有“F”替换为“f”,而不使用.replace()方法。我已经完成了,然后我应该将所有的“f”替换为空白,我已经这样做了,但由于某种原因,我所有的大写“F”都变成了一个奇怪的正方形。有任何想法吗?我知道这是基本代码,但只是小步骤。
这是我奇怪的输出:“有一个名叫 []isher 的渔民在一个问题上 isher 或一些 ish;直到一个 ish 笑着把渔夫拉了进来。现在他们正在 ishing 或 []isher ”
谢谢!罗布。
public static void main(String[] args) {
// orginal string sentence
String sentence = ("There was a fisherman named Fisher who fished for some fish in a fissure; till a fish with a grin, pulled the fisherman in. Now they’re fishing the fissure for Fisher. ");
// data
char[] originalArray = sentence.toCharArray();
int i = 0;
int sLength = sentence.length();
int positionArray[];
// combining an int to the array position
positionArray = new int[sLength];
/* while loop to check the position of any 'F' or 'f' characters in sentence and identifying it's array position*/
while (i < sLength) {
char charAt = sentence.charAt(i);
if (charAt == 'F') {
originalArray[i] = 0;
positionArray[i] = 1;
}
i++;
}
//redeclaring int i to 0 for the new array
i = 0;
//reassigning the character 'F' or 'f' to just 'f to 'sentence'
sentence = new String(originalArray);
char[] newArray = sentence.toCharArray();
while (i < sLength) {
if (positionArray[i] == 1) {
newArray[i] = 'f';
}
i++;
//redeclaring int i to 0 for the (part e)
i = 0;
//removing every occurance of 'f' (part e)
while (i < sLength) {
if (newArray[i] == 'f' ) {
newArray[i] = ' ';
}
i++;
//printing to console
}
sentence = new String(newArray);
System.out.println(sentence);
}
}
最佳答案
这是一个使用 Java 8 的解决方案。它利用了 String 的事实。是 CharSequence ,并且您可以获得 IntStream其中的字符或代码点;该解决方案使用 chars :
// Turn all 'F's into 'f's
private int bigFToSmallF(final int inputChar)
{
return 'F' == inputChar ? 'f' : inputChar;
}
// Turn all 'f's into '0's
private int smallFToZero(final int inputChar)
{
return 'f' == inputChar ? '0' : inputChar;
}
private String anyFToZeroes(final String input)
{
final StringBuilder sb = new StringBuilder(input.length());
input.chars().map(this::bigFToSmallF).map(this::smallFToZero)
.forEach(sb::appendCodePoint);
return sb.toString();
}
将此代码插入到 main
中即可完成。
关于java - 字符替换(不使用替换),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39121010/