/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
import java.util.regex.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
String s
= "dummy:10.45someObjectdummy:10.67somethingdummy:10.78somethingdummy:10.98djd" ; Matcher m = Pattern.compile ( "dummy:(\\ d+\\ .\\ d+)" ) .matcher ( s) ;
List< Double> vals = new ArrayList<> ( ) ;
while ( m.find ( ) ) {
vals.
add ( Double .
parseDouble ( m.
group ( 1 ) ) ) ; }
int val_id = vals.size ( ) / 2 - 1 ;
Double updated_val
= vals.
get ( val_id
) ; System .
out .
println ( "We need to update " + updated_val
) ; updated_val = updated_val + 1 ;
String replace_pattern
= "(dummy:(?:\\ d+\\ .\\ d.*?dummy:){" + ( val_id
) + "})\\ d+\\ .\\ d+" ; System .
out .
println ( "New pattern: " + replace_pattern
) ; String result
= s.
replaceFirst ( replace_pattern,
"$1" + updated_val
) ;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguKjsKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlTdHJpbmcgcyA9ICJkdW1teToxMC40NXNvbWVPYmplY3RkdW1teToxMC42N3NvbWV0aGluZ2R1bW15OjEwLjc4c29tZXRoaW5nZHVtbXk6MTAuOThkamQiOwoJCU1hdGNoZXIgbSA9IFBhdHRlcm4uY29tcGlsZSgiZHVtbXk6KFxcZCtcXC5cXGQrKSIpLm1hdGNoZXIocyk7CgkJTGlzdDxEb3VibGU+IHZhbHMgPSBuZXcgQXJyYXlMaXN0PD4oKTsKCQl3aGlsZSAobS5maW5kKCkpewoJCQl2YWxzLmFkZChEb3VibGUucGFyc2VEb3VibGUobS5ncm91cCgxKSkpOyAKCQl9IAoJCWludCB2YWxfaWQgPSB2YWxzLnNpemUoKSAvIDIgLSAxOwoJCURvdWJsZSB1cGRhdGVkX3ZhbCA9IHZhbHMuZ2V0KHZhbF9pZCk7CgkJU3lzdGVtLm91dC5wcmludGxuKCJXZSBuZWVkIHRvIHVwZGF0ZSAiICsgdXBkYXRlZF92YWwpOwoJCXVwZGF0ZWRfdmFsID0gdXBkYXRlZF92YWwgKyAxOwoJCVN0cmluZyByZXBsYWNlX3BhdHRlcm4gPSAiKGR1bW15Oig/OlxcZCtcXC5cXGQuKj9kdW1teTopeyIgKyAodmFsX2lkKSArICJ9KVxcZCtcXC5cXGQrIjsKCQlTeXN0ZW0ub3V0LnByaW50bG4oIk5ldyBwYXR0ZXJuOiAiICsgcmVwbGFjZV9wYXR0ZXJuKTsKCQlTdHJpbmcgcmVzdWx0ID0gcy5yZXBsYWNlRmlyc3QocmVwbGFjZV9wYXR0ZXJuLCAiJDEiICsgdXBkYXRlZF92YWwpOwoJCVN5c3RlbS5vdXQucHJpbnRsbihyZXN1bHQpOwoKCX0KfQ==