java中的复数字符串/数组?

时间:2015-04-25 11:48:26

标签: java string append complex-numbers

我想将复数分配给二进制值,我正在使用复杂的类,容易获得;但是当我将复数附加到字符串缓冲区,返回一个字符串时,一个复数就会占用多个条目。如何将1个数字放入1个条目并在之后阅读?结束字符串数据,如“2.0 + 2.0i2.0-2.0i2.0 + 2.0i2.0-2.0i-2.0 + 2.0i2.0 + 2.0i ....”。现在0处的字符是'2',1处的字符是'。'等等..我需要0的字符为2.0 + 2.0i。然后我应该能够分离每个条目的实部和虚部。

StringBuilder symbs = new StringBuilder();
Complex s1 = new Complex(-2,-2);
Complex s2 = new Complex(+2,-2);
Complex s3 = new Complex(+2,+2);
Complex s4 = new Complex(-2,+2);
/////////////////////Symbols to vector ////////////////////
for(int i=0; i< plo.length()-1; i+=2)
{
    if(plo.charAt(i)=='1' && plo.charAt(i+1)=='0')
    {
        symbs.append(s1);
    }
    else if(plo.charAt(i)=='0' && plo.charAt(i+1)=='1')
    {
        symbs.append(s2);
    }
    else if(plo.charAt(i)=='0' || plo.charAt(i+1)=='0')
    {
        symbs.append(s3);
    }
    else if(plo.charAt(i)=='1' && plo.charAt(i+1)=='1')
    {
        symbs.append(s4);
    }
}
printComplex(symbs.toString());

2 个答案:

答案 0 :(得分:1)

&#34;我需要0的字符为2.0 + 2.0i。&#34;这是不可能的,因为char是一个角色。

你可以在每个复合体之后附加分号,然后为它们拆分

答案 1 :(得分:-1)

使用与此TaskSeries s1 = new TaskSeries("Z1"); Task task = new Task("M1", new SimpleTimePeriod(0, 55)); task.addSubtask(new Task("M1a", new SimpleTimePeriod(0, 5))); task.addSubtask(new Task("M1b", new SimpleTimePeriod(15, 25))); s1.add(task); TaskSeries s2 = new TaskSeries("Z2"); s2.add(new Task("M1", new SimpleTimePeriod(5, 15))); TaskSeries s3 = new TaskSeries("Z3"); s3.add(new Task("M1", new SimpleTimePeriod(25, 35))); TaskSeriesCollection collection = new TaskSeriesCollection(); collection.add(s1); collection.add(s2); collection.add(s3); JFreeChart chart = ChartFactory.createGanttChart( "Gantt", "Machines", "Time", collection, true, false, false); CategoryPlot plot = chart.getCategoryPlot(); CategoryItemRenderer renderer = plot.getRenderer(); renderer.setBaseItemLabelGenerator(new CategoryItemLabelGenerator() { @Override public String generateRowLabel(CategoryDataset arg0, int arg1) { return arg0.getRowKey(arg1).toString(); } @Override public String generateLabel(CategoryDataset arg0, int arg1, int arg2) { return arg0.getRowKey(arg1).toString(); } @Override public String generateColumnLabel(CategoryDataset arg0, int arg1) { return arg0.getColumnKey(arg1).toString();//arg0.getRowKey(arg1).toString(); } }); renderer.setBaseItemLabelsVisible(true); renderer.setBaseItemLabelPaint(Color.BLACK); renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition( ItemLabelAnchor.INSIDE6, TextAnchor.BOTTOM_CENTER)); DateAxis axis = (DateAxis) plot.getRangeAxis(); axis.setDateFormatOverride(new SimpleDateFormat("S")); axis.setMaximumDate(new Date(100)); ChartFrame frame = new ChartFrame("Gantt", chart); frame.setPreferredSize(new java.awt.Dimension(500, 270)); frame.setVisible(true); frame.setSize(750, 350); 类似的正则表达式模式匹配 将字符串传递给[[0-9].0+[0-9].0i]+编译器,并检查给定字符串上是否存在可用模式。在此基础上,用程序逻辑提取值,得到实部和虚部。

正则表达式字符串

的说明
  

真实部分

Matcher - &gt;它会检查0到9之间的值,然后是[0-9],然后是.

  

虚构部分

0 - &gt;它会检查0到9之间的值,然后是[0-9],然后是.,然后是0