1

我的richtexBox1上有以下句子,如果句子以Create table开头并以分号结尾,我可以在每行之间只留一个行间距,并且不要留任何行间距

结果:

ALTER TABLE "COURSE" DROP CONSTRAINT "CRSE_CRSE_FK";




ALTER TABLE "ENROLLMENT" DROP CONSTRAINT "ENR_STU_FK";

ALTER TABLE "ENROLLMENT" DROP CONSTRAINT "ENR_SECT_FK"; 

ALTER TABLE "ENROLLMENT" ADD CONSTRAINT "ENR_STU_FK" FOREIGN KEY ("STUDENT_ID") REFERENCES "STUDENT"("STUDENT_ID") ENABLE;

ALTER TABLE "ENROLLMENT" ADD CONSTRAINT "ENR_SECT_FK" FOREIGN KEY ("SECTION_ID") REFERENCES "SECTION"("SECTION_ID") ENABLE;


CREATE TABLE "COMP1" 
(   "EMPID" NUMBER, 
"EMPLNAME" VARCHAR2(20), 
"EMPFNAME" VARCHAR2(20), 
"DEPTNO" NUMBER, 
"MGRID" NUMBER, 
PRIMARY KEY ("EMPID") ENABLE
);

CREATE TABLE "COMP12" 
(   "EMPID" NUMBER, 
"EMPLNAME" VARCHAR2(20), 
"EMPFNAME" VARCHAR2(20), 
"DEPTNO" NUMBER, 
"MGRID" NUMBER, 
PRIMARY KEY ("EMPID") ENABLE
);

预期结果

    ALTER TABLE "COURSE" DROP CONSTRAINT "CRSE_CRSE_FK";  

    ALTER TABLE "ENROLLMENT" DROP CONSTRAINT "ENR_STU_FK";

    ALTER TABLE "ENROLLMENT" DROP CONSTRAINT "ENR_SECT_FK"; 

    ALTER TABLE "ENROLLMENT" ADD CONSTRAINT "ENR_STU_FK" FOREIGN KEY ("STUDENT_ID") REFERENCES "STUDENT"("STUDENT_ID") ENABLE;

    ALTER TABLE "ENROLLMENT" ADD CONSTRAINT "ENR_SECT_FK" FOREIGN KEY ("SECTION_ID") REFERENCES "SECTION"("SECTION_ID") ENABLE;        

    CREATE TABLE "COMP1" 
    (   "EMPID" NUMBER, 
    "EMPLNAME" VARCHAR2(20), 
    "EMPFNAME" VARCHAR2(20), 
    "DEPTNO" NUMBER, 
    "MGRID" NUMBER, 
    PRIMARY KEY ("EMPID") ENABLE
    );

    CREATE TABLE "COMP12" 
    (   "EMPID" NUMBER, 
    "EMPLNAME" VARCHAR2(20), 
    "EMPFNAME" VARCHAR2(20), 
    "DEPTNO" NUMBER, 
    "MGRID" NUMBER, 
    PRIMARY KEY ("EMPID") ENABLE
    );

我的代码(仅添加 2 行空)

           List<string> rt = new List<string>();
            foreach (string line in richtexBox1 .Lines)
            {
                if (line != "")
                {
                    rt.Add(line);
                    rt.Add("");
                }
            }
            richtexBox1 .Lines = rt.ToArray();
4

2 回答 2

1

试试这个

 private void button1_Click(object sender, EventArgs e)
    {
        List<string> rt = new List<string>();
        foreach (string line in richTextBox1.Lines)
        {
            if (!string.IsNullOrEmpty(line.Trim()))
            {
                rt.Add(line);
            }
            if (line.Trim().EndsWith(";"))
            {
                rt.Add("\n");
            }
        }
        richTextBox1.Lines = rt.ToArray();
        richTextBox1.Refresh();
    }
于 2013-09-04T07:25:30.683 回答
0

感谢您澄清您的问题:

while (richTextBox1.Text.Contains("\n\n"))
    richTextBox1.Text = richTextBox1.Text.Replace("\n\n", "\n");
string[] linesafter = richTextBox1.Lines;
for (int i = 0; i < richTextBox1.Lines.Length; i++)
    if (richTextBox1.Lines[i].EndsWith(";"))
        linesafter[i] = linesafter[i] + "\n";
richTextBox1.Lines = linesafter;
于 2013-09-04T07:21:20.867 回答