質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

2917閲覧

nul文字について

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2016/08/22 06:02

文字列内に出現するすべての空白文字を"%20"で置き換えるメソッドを作成しようとしています。
ただし、文字列の後ろにはあらたに文字を追加するためのスペースが十分にあることと、その追加用スペースを除いた文字列の真の長さが与えられます。

Java

1public void replaceSpaces(char[] str, int length) { 2 int spaceCount =0,newLength,i=0; 3 //スペースの数を数える 4 for(i =0;i<length;i++) { 5 if(str[i] ==' ') { 6 spaceCount++; 7 } 8 } 9 //変換後の文字列の長さを算出 10 newLength = length + spaceCount*2; 11 str[newLength] = '¥0'; 12 13 //逆順で置き換え処理 14 for(i = length - 1;i >= 0;i--) { 15 if(str[i] == ' '){ 16 17 str[newLength - 1] = '0'; 18 str[newLength - 2] = '2'; 19 str[newLength - 3] = '%'; 20 newLength = newLength - 3; 21 } else { 22 str[newLength - 1] = str[i]; 23 newLength = newLength -1; 24 } 25 } 26 }

上のコードは解答例なのですが、どうやらヌル文字を使おうとしているようです。
しかしながら、コンパイラを通そうとすると、エラーになってしまいます。
これは解答例がおかしいのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BeatStar

2016/08/22 06:33

コンパイルを通そうと... コンパイルエラーは確認しましたか? コンパイルエラーのメッセージも読んでください。 どこでエラーが出ていますか? そういった情報も付加してください。
guest

回答3

0

replaceSpaces()して変換した結果がどこにも出力されない謎なメソッドだと思いましたが…

char[]配列から半角スペースの文字列を置き換えるのであれば、次のようにすれば良いだけかと。

java

1public String replace(char[] str) { 2 String target = new String(str); 3 4 return target.replaceAll(" ", ""); 5}

投稿2016/08/22 10:06

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

ファイルの文字コードが違ってそうです。
'\0' はヌル文字で合っています。

投稿2016/08/22 09:06

yskz44

総合スコア100

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

'¥0'
を打ちなおしてみてください。

投稿2016/08/22 06:40

ozwk

総合スコア13521

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問