1

タイトルはおそらく正確ではありませんが、この投稿を読んで、私がやりたいことを理解していただければ幸いです。

私はここで立ち往生しています。Java MEの新機能ですが、残念ながら、ご存知のように、JavaSEよりもメソッドが少なくなっています。

私が達成したいのはこれです:私はその中の数字がスペースで区切られたtxtを持っています。数字をスペースで区切って配列にすると、「c++では通常の配列として動作する」ことができる配列にそれらを配置したいと思います。

J2MEで(Netbeansを使用して)行ったことは次のとおりです。txtをストリームに取り込みました。後でストリームをバイト配列に送信し、最後にそれをchar配列に変換しました。

元のtxtが9821213だったとしましょう

コードの一部は次のとおりです。

InputStream is = getClass().getResourceAsStream("models.txt");
try{


   int st_pk1_len = is.available();

   byte st_pk1[] = new byte[st_pk1_len];

   is.read(st_pk1);

   char st_pk1_char[] = new String(st_pk1).toCharArray();

   System.out.println(st_pk1_char);

私が印刷するものは次のとおりです:98 2 12 13

ただし、私の問題は、インデックス0にアクセスしたいときに、98ではなく9だけを取得することです。12に到達しようとすると、ポインタを3に設定しますが、取得するのは空のスペースなどです。

私はそれを元の数に再び変換する運がなかったので見つけたさまざまな方法を検索して試しました。

それは私の側からの愚かな間違いか、私が考えもしなかった何かかもしれません。

この問題の簡単な解決策はありませんか?


更新それは今働いています!配列は「通常の」c++文字配列として機能しています。他の誰かがそれを必要とするか、私の同じ問題を抱えている場合、これはどのように見えるかです:

InputStream is = getClass().getResourceAsStream("st_pk1.txt");
int st_pk1_len = is.available(); 
byte st_pk1[] = new byte[st_pk1_len]; 
is.read(st_pk1); 
char st_pk1_char[] = new String(st_pk1).toCharArray(); 
String PreSplitted = new String(st_pk1); 
String AftSplit[] = Split(PreSplitted, " "); 

確認したい場合:System.out.println(AftSplit[n]);

分割方法については、Gnatの投稿の2番目のリンクを使用しました。 J2MEでテキストを分割する

4

1 に答える 1

1

char配列は、スペースで区切られたトークンを含む文字列として扱うことができnew String(st_pk1)ます。これは自動的に行われます。

その後、他のいくつかのStack Overflowの質問で説明されているように、分割する必要があります。

于 2012-04-17T08:12:34.140 に答える