正确格式化字符串

时间:2017-04-27 23:48:42

标签: c# string formatting display

我有一个字符串,我想以表格的形式格式化。目前,它输出所有数据,但不输出正确的列/行。我希望它能排成队并且不重叠。有什么帮助吗?感谢

返回值的代码:

 public override string ToString()
        {
            return String.Format($"{DayValues}|{MonthValues}|{YearValues}|{TimeValues}|{TimestampValues}|{RegionValues}|{DepthValues}|{LatitudeValues}|{LongitudeValues}|{MagnitudeValues}|{IrisValues}");
        }

输出示例:

10|January |2014|07:20:46|1389338446|TURKEY|10.300|39.460|27.950|4.000|4371306
31|December |2013|15:06:14|1388502374|CRETE|26.500|34.390|25.310|4.200|4370886
29|December |2013|06:54:59|1388300099|NORTHWESTERN BALKAN REGION|10.000|43.100|17.190|4.700|4370801
28|December |2013|18:55:03|1388256903|CYPRUS REGION|46.900|35.670|31.350|4.500|4370887

2 个答案:

答案 0 :(得分:2)

//I have never seen pg_fetch_array()
while($row = mysql_fetch_assoc($result)){
  $new_arr[] = $row;
}
//print each row
foreach($new_arr as $new){
  echo $new;
}

答案 1 :(得分:1)

根据您的需要,您需要将数据填充到最大尺寸,如下所示:

def myfun(df1, frames, coords=['POSITION_X', 'POSITION_Y']):


        tau = t.copy()
        shifts = np.floor(tau / t_step).astype(np.int)
        msds_sum = np.zeros(shifts.size)
        delta_inv = np.arange(N+1)
        delta = delta_inv[N:0:-1]
        lag = np.arange(1,N+1)


        for i, shift in enumerate(shifts):
            diffs = df1[coords] - df1[coords].shift(-shift)
            sqdist = np.square(diffs).sum(axis=1)
            msds_sum[i] = sqdist.sum()
            msd = np.divide(msds_sum,delta)
            delta_inv = np.arange(N+1)

        msds = pd.DataFrame({'msd':msd, 'delta':delta, 'lag':lag})
        return msds

msd = myfun(df1, frames, coords=['POSITION_X', 'POSITION_Y'])
print(msd)

我已将所有数据左对齐,但您可以使用 public override string ToString() { return $"{DayValues.ToString().PadRight(2, ' ')}|{MonthValues.ToString().PadRight(10, ' ')}|{YearValues.ToString().PadRight(4, ' ')}|{TimeValues.ToString().PadRight(8, ' ')}|{TimestampValues.ToString().PadRight(10, ' ')}|{RegionValues.ToString().PadRight(40, ' ')}|{DepthValues.ToString().PadRight(6, ' ')}|{LatitudeValues.ToString().PadRight(6, ' ')}|{LongitudeValues.ToString().PadRight(6, ' ')}|{MagnitudeValues.ToString().PadRight(6, ' ')}|{IrisValues.ToString().PadRight(6, ' ')}"; } 而非PadLeft更改对齐方式。此外,您需要将列大小(焊盘长度)调整为每个值的最大预期大小。