
07.09.2015, 10:35
|
|
Новичок
Регистрация: 21.01.2010
Сообщений: 0
С нами:
8581120
Репутация:
0
|
|
Выйграли:
@Java-man - премиум на 1 месяц.
Сообщение от Java-man
Первый вариант - красивый.
Код:
Код:
public class Test
{
public static void main(String[] args)
{
Optional string = IntStream.rangeClosed(1, 100)
.mapToObj(i -> i % 15 == 0 ? "mmo-develop.ru" : String.valueOf(i))
.map(i -> parseInt(i, 1) % 3 == 0 ? "mmo-" : i)
.map(i -> parseInt(i, 1) % 5 == 0 ? "develop.ru" : i)
.reduce((a, b) -> a + System.lineSeparator() + b);
System.out.println(string.get());
}
public static int parseInt(String number, int defaultVal)
{
try
{
return Integer.parseInt(number);
}
catch (NumberFormatException e)
{
return defaultVal;
}
}
}
Второй вариант - короткий. Естественно я его выкладываю в максимально читабельном варианте, так как я не дебил. А так его можно сложить в одну строку.
Код:
Код:
public class Test
{
public static void main(String[] args)
{
Optional string = IntStream.rangeClosed(1, 100)
.mapToObj(i -> (i % 15 == 0)
? "mmo-develop.ru"
: (i % 3 == 0)
? "mmo-"
: (i % 5 == 0)
? "develop.ru"
: String.valueOf(i))
.reduce((a, b) -> a + System.lineSeparator() + b);
System.out.println(string.get());
}
}
@b3trayer - премиум 2 недели.
[QUOTE="zcxv"]
Вывод используется один раз с final String переменной
Код:
[CODE]
public static void main(String[] args) {
MmoDevelop obj = new MmoDevelop ();
obj.version1();
}
final String string = "null".toString(); //disabling inlining
public void version1() {
Field f;
try {
f = MmoDevelop .class.getDeclaredField("string");
f.setAccessible(true);
Field modifiers = Field.class.getDeclaredField("modifiers");
modifiers.setAccessible(true);
modifiers.setInt(f, f.getModifiers() & ~Modifier.FINAL);
} catch(Throwable e) {
throw new RuntimeException(e);
}
final int num1 = 3;
final int num2 = 5;
final int num3 = 15;
for(int i = 1; i
Код:
Код:
public class Mmodev {
final String text;
public Mmodev() {
text = makeString();
}
public static void main(String[] args) {
Mmodev m1 = new Mmodev();
System.out.println(m1);
}
private String makeString() {
StringBuilder stringBuilder = new StringBuilder();
for (int i = 1; 100 >= i; i++) {
stringBuilder.append((i % 5 == 0 && i % 3 == 0) ? "mmo-develop.ru\n" : (i % 5 == 0) ? "develop.ru\n" : (i % 3 == 0) ? "mmo-\n" : i + "\n");
}
return stringBuilder.toString();
}
@Override
public String toString() {
return text;
}
}
|
|
|