-4

文字列にデータの完全な 1 次元配列があります。計算のために、この 1 次元配列を double 配列に変換する必要があります。しかし、私はそれを理解することはできません。もし私がそれを理解できれば、それは素晴らしいことです。よくわかりませんが、データファイル AS を double として読み込み、データ間の空白を解析できれば、それも素晴らしいでしょう。psデータは、以下に示すようにまとめられていない座標として配置されますが、私がこれを行っている方法では、xおよびyとして読み取られず、1次元配列行のみとして読み取られます。

コード:

file = new File("subtractedvectors.txt");
    scan = new Scanner(file);

    String [] subarray = new String[40];


    for(int row = 0; row < subarray.length; row++)
    {
        subarray[row] = scan.nextLine();
    }


    for(int row = 0; row < subarray.length; row++)
    {
        System.out.println(subarray[row] + " ");
    }

データ:

-0.2869350880499999 0.01840283447500002 
-0.3356446340499999 -0.422276631525 
-1.0879343110499997 -0.311055704525 
-1.8794583530499998 1.268985311475 
-2.0487925240499996 -3.404131234525 
-0.7463400580499997 -0.05142237152500001 
1.2400316559500002 2.965222622475 
1.1715767139500004 -1.1113755165249999 
-0.4877369190499996 0.020307310475000007 
-0.8296528740499998 -0.611436447525 
0.43321626695000015 1.483144874475 
-0.4486841620499997 -4.199991639525 
-0.5980551060499999 -0.180287944525 
-0.9379483020499997 -1.605169775525 
0.15643726595000018 -2.591523262525 
2.19071678095 -1.041180241525 
-0.035047204049999614 0.107759270475 
-0.2796619480499998 1.174812069475 
-0.36357588404999985 -1.952647147525 
-0.1541381710499996 4.825189096475 
-0.5386256110499996 -0.129932855525 
-0.45958803605 1.054999589475 
0.5778822969500004 -1.580357584525 
2.1483562569500005 2.572258306475 
1.27904823795 1.228401456475 
0.9637480429500003 -1.766055860525 
0.33140834695 -0.18790365852500002 
-0.047555686049999935 2.585936438475 
1.2005633959500002 0.22278022747500004 
-1.4305940340499999 -1.694298031525 
-0.41707550904999957 -1.004148960525 
0.3517812019500002 0.599364130475 
-0.4172730140499996 3.248876134475 
-1.0244646370499997 2.770375020475 
-0.9653208200499999 -3.841495616525 
-0.7291669410499997 1.323124606475 
2.3113769619500006 -2.065505287525 
2.0595313709500003 1.454475365475 
-1.0216935320499998 1.511419720475 
1.15528856295 -0.683638613525 
4

2 に答える 2

1

このコードを試すことができます。
このコードが行うことは、文字列配列を読み取ることです。
2 つの数字の間の 1 つのスペースに基づいて 2 つの部分に分割し、
それを double に解析します

String [] subarray = new String[40];
for(int row = 0; row < subarray.length; row++)
{
  subarray[row] = scan.nextLine();
}
double [][] myDoubleArray = new double[40][2];
for(int row = 0; row < subarray.length; row++)
{
  String s = subarray[row].split();//assuming that two doubles are seperated by a space  
  myDoubleArray[row][0] = Double.parseDouble(s[0]);
  myDoubleArray[row][1] = Double.parseDouble(s[1]);
}
于 2013-02-02T17:54:42.307 に答える
0

with を使用しているは、特定の区切り文字を持つ の検索Scannerをサポートしています。Double

String input = "-1.25 1.65\n 1.47 5.72";

Scanner scanner = new Scanner(input);
scanner.useLocale(Locale.US);
scanner.useDelimiter("[\\r\\n\\s]+");

while (scanner.hasNextDouble()) {
   System.out.println(scanner.nextDouble());
}

出力:

-1.25
1.65
1.47
5.72

私の例の区切り文字は、質問のサンプル データに基づいて機能するはずです。List配列を使用するのではなく、

于 2013-02-02T17:58:40.517 に答える