Добавить недостающие операторы импорта из другого кода - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть 2 строки ( string1 & string2 ), которые содержат код 2 java классов.

string1 содержит: -

    package com.test.package;

    import com.abc.Test1;
    import com.abc.Test2;
    import com.abc.Test2.Test21;
    import com.abc.Test10;

    public class TestA {
        public void testMethod(){
           //Method body
        }
    }

string2 содержит: -

    package com.test.package;

    import com.abc.Test1;
    import com.abc.Test2;
    import com.abc.Test3;
    import com.def.ghi.Test4;
    import com.def.ghi.Test5;

    public class TestB {
        public void testMethod(){
           //Method body
        }
    }

Теперь мне нужно скопировать все операторы импорта, которые не находятся в string1 из string2 .

Ожидается: -

    package com.test.package;

    import com.abc.Test1;
    import com.abc.Test2;
    import com.abc.Test2.Test21;
    import com.abc.Test10;
    import com.abc.Test3;
    import com.def.ghi.Test4;
    import com.def.ghi.Test5;

    public class TestA {
        public void testMethod(){
           //Method body
        }
    }

Может ли кто-нибудь помочь мне решить этот сценарий (по крайней мере, чтобы получить пропущенные операторы импорта)?

1 Ответ

0 голосов
/ 03 апреля 2020

Пожалуйста, выполните следующие шаги:

1. Сначала вам нужно разбить строку на строковый массив и вывести импорт в виде строки.

String[] string1Array = string1.split("\n\n");
result : string1Array[0]=package com.test.package;
         string1Array[1]=import com.abc.Test1;
                         import com.abc.Test2;
                         import com.abc.Test2.Test21;
                         import com.abc.Test10;
String[] string2Array = string2.split("\n\n");
Теперь вам нужно разделить операторы импорта.
String[] importStringArray1 = string1Array[1].split("\n");
String[] importStringArray2 = string2Array[1].split("\n");
output : importStringArray1[0]=import com.abc.Test1;
             importStringArray1[1]=import com.abc.Test2;
             importStringArray1[2]=import com.abc.Test2.Test21;

Теперь вам нужно проверить, доступен ли импорт в string2 или нет в строке 1. Если его нет, добавьте в string1.

string1 =  string1Array[0].concat("\n\n");
string1 = string1.concat(string1Array[1]);
for(String a : importStringArray2) {
      boolean found = false;
      for(String b : importStringArray1){
         if(a.queals(b)) {
            found=true;break;
         }
      }
      if(!found){
         string1=string1.concat("\n").concat(a);
      }
}
string1=string1.concat("\n\n").concat(string1Array[2]);

Надеюсь, это будет работать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...