Byla vydána nová verze 3.2.6 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.
Bylo vydáno Ubuntu 24.04.5 LTS, tj. páté opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na poznámkách k vydání.
Švýcarsko testuje přechod z Microsoft 365 na FOSS, konkrétně balík openDesk (Wikipedie) od německé státní společnosti ZenDiS (Wikipedie), s cílem posílit digitální suverenitu.
V italském městě Pordenone probíhá LibreOffice Conference 2026. Zúčastnit se lze i online.
Svobodný (GPLv3) šachový engine Stockfish (Wikipedie) byl vydán ve verzi 19 (𝕏). Přehled novinek v příspěvku na blogu. Stockfish 19 je o 44 Elo silnější než Stockfish 18.
Byla vydána nová verze 1.13.0 dynamického programovacího jazyka Julia (Wikipedie) určeného zejména pro vědecké výpočty. Přehled novinek v příspěvku na blogu a v poznámkách k vydání. Aktualizována byla také dokumentace.
Organizátoři konference LinuxDays zveřejnili program letošního ročníku a spustili registraci návštěvníků. LinuxDays 2026 se uskuteční 3. a 4. října v areálu ČVUT v pražských Dejvicích, na Fakultě informačních technologií. Těšit se můžete na 70 přednášek a workshopů od 66 přednášejících. Konference bude rozdělena do pěti sálů s různou kapacitou. Vstup na LinuxDays je jako obvykle zdarma, stačí včas vyplnit registrační formulář. Opět je možné si na akci zakoupit oběd, ale je třeba to udělat předem, na místě už to nebude možné.
Google Chrome 153 byl prohlášen za stabilní. Nejnovější stabilní verze 153.0.8010.36 přináší řadu novinek. Podrobný přehled v poznámkách k vydání. Opraveno bylo 230 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Open-source hra Shattered Pixel Dungeon (Wikipedie) byla vydána ve verzi 4.0.0. Přehled novinek v příspěvku na blogu.
Apple dnes představil (YouTube) iPhone Duo, iPhone 18 Pro, Watch Series 12, Watch Ultra 4 a AirPods 5.
M41dostat jako vystup :
M<41>. Potrebuju oddelit prvni pismeno a cisla za nim dat do sipek. Zkousel jsem :
slovo.split("") s tim ze bych si tam pak ty sipky concatoval, ale ten split() me to na pismena nerozdeli.
Pokud bych rozdelil slovo na pole charu, tak zas asi tezko concatuju ty sipky...
Mohl by nekdo poradit pls?
Řešení dotazu:
Pokud bych rozdelil slovo na pole charu, tak zas asi tezko concatuju ty sipky...Pak to pole projdeš v cyklu a pomocí StringBuilderu postupně sestavíš nový řetězec – na některá místa přidáš ty šipky. Měl bys ale upřesnit zadání. Proč chceš šipky přidat zrovna kolem 41? Možná by se ti hodily regulární výrazy – definuješ si vzor, ten může obsahovat skupiny (části textu) a ty si pak vytáhneš a třeba obalíš šipkami.
char[] charArray = word.toCharArray();
String temp = Character.toString(charArray[0]); //getting object letter
Pattern pattern = Pattern.compile("^"+temp+"(\\d+)$"); //setting a regex pattern
Matcher matcher = pattern.matcher(word);
if(!(matcher.matches())) {
throw new CatalogIOException("wrong ID format");
}
String ID = temp.concat("<").concat(matcher.group(1)).concat(">"); //matcher.gorup(1) returns a string with the object number
Místo vymýšlení nějakého pseudojazyka s čísly v závorkách z toho udělej instance nějaké tvé třídy, kde to číslo bude uložené jako int v privátní proměnné.
s/^([a-z])([0-9]+)/$1<$2>/i;
"M41".replaceAll("([0-9]+)", "<$1>")
(a při opakovaném použití je dobré si regulární výrazy předkompilovat)
public static String updateText(String str) {
StringBuffer updatedText = new StringBuffer();
Matcher matcher = Pattern.compile("\\d+").matcher(str);
while(matcher.find()) {
String group = matcher.group();
StringBuilder replacement = new StringBuilder();
replacement.append("<").append(group).append(">");
matcher.appendReplacement(updatedText, replacement.toString());
}
matcher.appendTail(updatedText);
return updatedText.toString();
}
no to potes, takova prasarna... proc navic komentujete 100 dni stary dotaz, kde navic padlo elegantni reseni?
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
private static final String TEST_STRING = "M23";
public static void main(String[] args) {
Date d = new Date();
Pattern pattern = Pattern.compile("\\d+");
for(int i = 0; i < 10000000; i++) {
TEST_STRING.replaceAll("([0-9]+)", "<$1>");
}
System.out.println(new Date().getTime() - d.getTime());
d = new Date();
for(int i = 0; i < 10000000; i++) {
updateText(pattern, TEST_STRING);
}
System.out.println(new Date().getTime() - d.getTime());
}
public static String updateText(Pattern pattern, String str) {
StringBuffer updatedText = new StringBuffer();
Matcher matcher = pattern.matcher(str);
while(matcher.find()) {
String group = matcher.group();
StringBuilder replacement = new StringBuilder();
replacement.append("<").append(group).append(">");
matcher.appendReplacement(updatedText, replacement.toString());
}
matcher.appendTail(updatedText);
return updatedText.toString();
}
}
Tiskni
Sdílej: