Od soboty do úterý probíhá v Hamburku konference 39C3 (Chaos Communication Congress) věnovaná také počítačové bezpečnosti nebo hardwaru. Program (jiná verze) slibuje řadu zajímavých přednášek. Streamy a záznamy budou k dispozici na media.ccc.de.
Byl představen nový Xserver Phoenix, kompletně od nuly vyvíjený v programovacím jazyce Zig. Projekt Phoenix si klade za cíl být moderní alternativou k X.Org serveru.
XLibre Xserver byl 21. prosince vydán ve verzi 25.1.0, 'winter solstice release'. Od založení tohoto forku X.Org serveru se jedná o vůbec první novou minor verzi (inkrementovalo se to druhé číslo v číselném kódu verze).
Wayback byl vydán ve verzi 0.3. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.
Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.
Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.
Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.
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: