BG Development


Страници: (4) [1] 2 3 ... последна »  ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Java да хвана първия символ от стринг и последния
nullsoft
Публикувано на: 05-10-2019, 10:55
Quote Post



Име:
Група: Потребител
Ранг: Посетител

Мнения: 102
Регистриран на: 23.06.05



напиах последния код

CODE

         String txt = "meiN_ _Name iSt _Hase. Ich weiß BESCHEID._ _wirklich!!! ";
         String[] woerter = txt.split(" ");

         String regex = "^_.$";

         boolean matches = Pattern.matches(regex, woerter[1]);
        
               System.out.println(matches);
               System.out.print(woerter[1]);


получавам това
QUOTE
false
_Name


програмата трябва да смени всички букви на малки ако _ е последен симбол или ако е първа всички на големи букви

но не мога да хвана първия и последния симбол


--------------------
PMEmail Poster
Top
Gamma Goblin
Публикувано на: 05-10-2019, 11:00
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2833
Регистриран на: 21.02.18



Защо не ползваш "some string".startsWith() / .endsWith()


--------------------
PMEmail PosterUsers Website
Top
nullsoft
Публикувано на: 05-10-2019, 11:04
Quote Post



Име:
Група: Потребител
Ранг: Посетител

Мнения: 102
Регистриран на: 23.06.05



мисля че точно това ми трябва icon_smile.gif но те първа учим JAVA не и знам функциите. Имали от каде да видя всички тези функции?
и защо regex не хваща първия симбол?

Това мнение е било редактирано от nullsoft на 05-10-2019, 11:05


--------------------
PMEmail Poster
Top
ici
Публикувано на: 05-10-2019, 11:15
Quote Post


Group Icon
Име: Луминантен Рептилоид
Група: VIP
Ранг: Почетен член

Мнения: 16499
Регистриран на: 06.06.04



Regex - "\w*_\b"

"meiN_ _Name iSt _Hase. Ich weiß BESCHEID._ _wirklich!!! ";


--------------------
Reading undefined locations provides undefined data.
PMEmail PosterUsers Website
Top
thrawn
Публикувано на: 05-10-2019, 11:35
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2519
Регистриран на: 17.01.17



Каква е целта. Просто да се реши задачата или да се ползват инструментите които предлага java за работа с регулярни изрази?
PMEmail Poster
Top
nullsoft
Публикувано на: 05-10-2019, 17:22
Quote Post



Име:
Група: Потребител
Ранг: Посетител

Мнения: 102
Регистриран на: 23.06.05



QUOTE (thrawn @ 05-10-2019, 11:35)
Каква е целта. Просто  да се реши задачата или да се ползват инструментите които предлага java за работа с регулярни изрази?

целта е да се реши задачата

стигнах до тук

CODE
String txt = "meiN_ _Name iSt _Hase. Ich weiß BESCHEID._ _wirklich!!! ";
         String[] woerter = txt.split(" ");
         for (int i = 0; i < woerter.length; i++ ) {
         String      wort = woerter[i];
               
                 boolean start = wort.startsWith("_");
                 boolean end = wort.endsWith("_");
               if ( start == true  ) {
                     
               
                     
                     
                     String  as = wort.toUpperCase();
                     String r=as.replace('_',' ');  
                 System.out.println(r);
                     
               } else if (end == true) {
                     
                     String  as = wort.toLowerCase();
                     String r=as.replace('_',' ');  
                 System.out.println(r);
                     
               }
             
               
               
         }


Как мога да сменя целия текст с дадените думи

Това мнение е било редактирано от nullsoft на 05-10-2019, 17:43


--------------------
PMEmail Poster
Top
Антон Яначков
Публикувано на: 05-10-2019, 19:29
Quote Post



Име: Антон Яначков
Група: Потребител
Ранг: Почетен член

Мнения: 1240
Регистриран на: 27.07.16



Силата на регулярните изрази е точно в това. Пишеш верния шаблон и чрез метода replace заместваш всичко навсякъде отведнъж. Не ти трябва масив. Правиш всичко отведнъж.Тук аз бих написал шаблон да търси букви завършващи със долна черта и да ги направи с малки букви, след което да търси шаблон на букви започващи с долна черта и да ги направи големи и най-накрая реплейсваш долната черта с нищо.
Регулярните изрази са тежката артилерия на стринговата обработка и само ще спечелиш, ако ги научиш. Е друг е проблемът, че ако не ги ползваш веднага ще ги забравиш, но ще си се докаснал до тяхната сила, скорост и компактност на кода.

Това мнение е било редактирано от Антон Яначков на 05-10-2019, 19:31
PMEmail PosterUsers Website
Top
thrawn
Публикувано на: 05-10-2019, 20:08
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2519
Регистриран на: 17.01.17



Текстовете можеш да ги замениш с Stringl#replaceAll()

Ето ти едно решение, което може да се оптимизира при нужда (допуска се пунктуация само в края на думата)
CODE
Pattern pattern = Pattern.compile("(?<upper>\\b_\\w+\\p{Punct}*)|(?<lower>\\w+\\p{Punct}*_\\b)");
Matcher matcher = pattern.matcher(s);
while (matcher.find()) {
   if(matcher.group("upper") != null) {
       s = s.replaceAll(matcher.group(), matcher.group().replaceAll("_", "").toUpperCase());
   }
   else {
       s = s.replaceAll(matcher.group(), matcher.group().replaceAll("_", "").toLowerCase());
   }
}
PMEmail Poster
Top
Gamma Goblin
Публикувано на: 05-10-2019, 20:28
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2833
Регистриран на: 21.02.18



Ако целта е да научиш нещо, то най-добре не ползвай готови неща като регулярни изрази и готови методи, ами си го напиши сам от нулата.


--------------------
PMEmail PosterUsers Website
Top
Антон Яначков
Публикувано на: 05-10-2019, 21:19
Quote Post



Име: Антон Яначков
Група: Потребител
Ранг: Почетен член

Мнения: 1240
Регистриран на: 27.07.16



В Javascript нещата изглеждат много по-прости без цикъл. Нямам на идея дали може да се приложи в Java.
CODE

  str=str.replace(/\_[a-zA-Z]+/g,function myFunction(x){x=x.toUpperCase(); return x;});
  str=str.replace(/[a-zA-Z]+\_/g,function myFunction(x){x=x.toLowerCase(); return x;});
  str=str.replace(/\_/g,'');


Ето линк към работещо примерче:
http://instrumenti.bivaood.com/interesni/Dev/PrimerReg.html
PMEmail PosterUsers Website
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (4) [1] 2 3 ... последна » Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0