Как я могу сделать это более элегантным и применимым к любой строке? - PullRequest
0 голосов
/ 12 февраля 2020
public class JavaIntern{

     public static void main(String []args){
         String str = "JavaIntern"; //hardcoded, but not the problem
         char[] s = str.toCharArray();
         String result = new String (s,0,1); //this is where the dilemma begins
         System.out.println(result);
         String result1 = new String (s,0,2);
         System.out.println(result1);
         String result2 = new String (s,0,3);
         System.out.println(result2);
         String result3 = new String (s,0,4);
         System.out.println(result3);
         String result4 = new String (s,0,5);
         System.out.println(result4);
         String result5 = new String (s,0,6);
         System.out.println(result5);
         String result6 = new String (s,0,7);
         System.out.println(result6);
         String result7 = new String (s,0,8);
         System.out.println(result7);
         String result8 = new String (s,0,9);
         System.out.println(result8);
         String result9 = new String (s,0,10);
         System.out.println(result9); //and this is where it ends... how can I get rid of this?
     }
}

// но все равно получите это:

J
Ja
Jav
Java
JavaI
JavaIn
JavaInt
JavaInte
JavaInter
JavaIntern

Ответы [ 2 ]

1 голос
/ 12 февраля 2020

Я предполагаю, что вы хотите иметь возможность печатать еще одну букву каждый раз. Для этого мы используем for l oop, и это довольно просто.

public class MainClass {
    public static void main(String[] args) {
        String str = "JavaIntern";
        for (int i = 1; i <= str.length(); i++) {
            System.out.println(str.substring(0, i));
        }
    }
}

Мы устанавливаем i в 0 в l oop, продолжаем итерацию, пока i меньше или равна длине строки, и каждый раз, когда мы выполняем итерацию, добавляем единицу к i.

Мы используем метод substring, чтобы отделить строку от первой буквы до i.

1 голос
/ 12 февраля 2020

Полагаю, вы хотите улучшить код, а также не зависеть от длины строки.

А что-то вроде этого?

public class JavaIntern{

     public static void main(String []args){
         String str = "JavaIntern"; //hardcoded, but not the problem
         String substring = "";

         for (char ch: str.toCharArray()) {
             substring += ch;
             System.out.println(substring);
         }
     }
}

Также будет напечатано:

J
Ja
Jav
Java
JavaI
JavaIn
JavaInt
JavaInte
JavaInter
JavaIntern

l oop получает по одному символу строки за раз и объединяет его с подстрокой перед печатью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...