JAvaでの単純文字置換
1158 ワード
ネットワークプログラミングでは、URLにスペース、'#'などの特殊な文字が含まれていると仮定し、serverは正しいパラメータ値が得られないことを認識できません.スペースを'%20'に変換するなど、これらの特殊な文字をserverが認識できる文字に変換する必要があります.文字列を指定し、中のスペースを'%20'に変換します.できるだけ効率が高いことが求められる.できるだけO(n)の複雑さが終わって、char配列で文字を保存することを要求して、stringを使うことができません
入力:hello worldなどの元の文字列.
変換された文字列、例えばhello%20 worldを出力します.
入力:hello worldなどの元の文字列.
変換された文字列、例えばhello%20 worldを出力します.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
char[] charArr = str.toCharArray();
int size = charArr.length;
for (char _char : charArr) {
if (_char == ' ') {
size += 2;
}
}
char[] newArr = new char[size];
for (int i = 0, j = 0; i < charArr.length; i++) {
if (' ' != charArr[i]) {
newArr[j++] = charArr[i];
} else {
newArr[j++] = '%';
newArr[j++] = '2';
newArr[j++] = '0';
}
}
System.out.println(new String(newArr));
}
}