2017-02-07 21 views
1

私はプロジェクトで作業しています。私はいくつかの助けが必要です。これは私の単純な質問文字列から文字列へのコピー

1)私はと呼ばれる文字列に書きたいです

package test; 

import java.io.*; 

public class Main { 
    public static void main(String [] args) { 

     // The name of the file to open. 
     String fileName = "C:\\Users\\karlk\\workspace\\Work\\src\\test\\tempx.txt"; 
     // This will reference one line at a time 
     String line = null; 

     try { 
      // FileReader reads text files in the default encoding. 
      FileReader fileReader = 
       new FileReader(fileName); 

      // Always wrap FileReader in BufferedReader. 
      BufferedReader bufferedReader = 
       new BufferedReader(fileReader); 

      while((line = bufferedReader.readLine()) != null) { 
       System.out.println(line); 
      } 

      // Always close files. 
      bufferedReader.close();   
     } 
     catch(FileNotFoundException ex) { 
      System.out.println(
       "Unable to open file '" + 
       fileName + "'");     
     } 
     catch(IOException ex) { 
      System.out.println(
       "Error reading file '" 
       + fileName + "'");     
      // Or we could just do this: 
      // ex.printStackTrace(); 
     } 
    } 
} 

tempx.txt

Karlken:Java:Male 

だからここに私のテストコードです':'(Karlken)の前の最初の単語を「名前」、もう1つの文字列(Java)の「:」の後の2番目の単語、最後に、もう一度別の文字列で私は "男性"を書いてどのようにすることができますか?

+2

'line.split(": ")' – shmosel

+0

3番目の文字列で混乱します。あなたは単に意味するものではありません: 文字列男性= "男性"; ですか? –

+0

文字列= "C:¥¥Users¥¥karlk¥¥workspace¥¥Work¥¥src¥¥test¥¥tempx.txt"; String [] parts = string.split( ":"); 文字列part1 =パーツ[0]。 文字列part2 =パーツ[1];私が欲しいもの@johncliffe –

答えて

0

あなたは、この目的のためにスキャナを使用することができます。

public static void main(String[] args){ 
    String fileName = "C:\\Users\\karlk\\workspace\\Work\\src\\test\\tempx.txt"; 

    try(Scanner scanner = new Scanner(new File(fileName))){ 
     scanner.useDelimiter(":"); 

     String name = scanner.next(); 
     String lang = scanner.next(); 
     String sex = scanner.next();    
    }catch(FileNotFoundException ex) { 
     System.out.println(
       "Unable to open file '" + 
       fileName + "'");     
    }catch(IOException ex) { 
     System.out.println(
      "Error reading file '" 
      + fileName + "'"); 
    } 
} 
0
while((line = bufferedReader.readLine()) != null) { 
    String text = line; 
    String[] parts = string.split(":"); 
    String part1 = parts[0]; 
    String part2 = parts[1]; 
    String part2 = parts[2]; 
} 

コードに適しています。

+0

は、スタックオーバーフローへようこそ!このユーザーの問題を解決しているかもしれませんが、将来この問題に遭遇するユーザーにとってはコードオンリーの回答はあまり役に立ちません。あなたのコードが元の問題を解決する理由を説明するために、あなたの答えを編集してください。 –

0

ファイル内のテキストの書式があらかじめ定義されている場合は(単一:で区切らすなわち常に3部)、次は十分なはずです:

String text = readLineFromFile(filepath); 
String[] parts = text.split(":"); 
String name = parts[0]; 
String lang = parts[1]; 
String gender = parts[2]; 
+0

"readLineFromFile"はどのように使用できますか?それは私にエラーを与える。 – Karlken

+0

@yinonそれはあなたがジョンクリフの答えからコードをコピーしたように見えます。 – GriffeyDog

+0

@GriffeyDogそれは逆の方法です。 johnの投稿の[history](http://stackoverflow.com/posts/42097986/revisions)を確認してください。 – Izruo

関連する問題