簡體   English   中英

如何在Java中將每個n,2n,3n ..字符添加到字符串中

[英]How to Add Every n,2n,3n.. character to a string in Java

我是Java的新手,我正在嘗試編寫一個函數,該函數返回一個字符串,該字符串僅包含當前字符串中位置n,2n,3n等的所有字符

我嘗試了以下代碼,但沒有成功

public String everyNth(String str, int n) {
String result="";
(i=0; i<str.length(); i=i+n){
result+=str.charAt(i);
}
return result;
}

請幫我解決我的錯誤

這里的一種選擇是遍歷輸入字符串中的每個字符,並保留一個字符(如果它是n的倍數):

public String everyNth(String str, int n) {
    StringBuilder result = new StringBuilder("");

    if (n == 1) {
        result.append(str.charAt(0));
    }
    for (int i=1; i < str.length(); ++i) {
        if ((i + 1) % n == 0) {
            result.append(str.charAt(i));
        }
    }

    return result.toString()
}

用法:

String result = everyNth("1234567890abcdefghijklmnopqrstuvwxyz", 1);
System.out.println(result);
result = everyNth("1234567890abcdefghijklmnopqrstuvwxyz", 3);
System.out.println(result);

輸出:

1234567890abcdefghijklmnopqrstuvwxyz
369behknqtwz

根據您與蒂姆的討論。 我修改了代碼,此外,您的代碼在Java語言場景中有編譯錯誤。

1,吳for關鍵字。

2,變量i的int關鍵字。

您應該像Eclipse一樣使用IDE,以便在運行代碼之前可以顯示任何編譯錯誤。

請參考下面的代碼。

 public class Test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Test test = new Test();
        String result = test.everyNth("hello world", 2);
        System.out.println(result);
    }

    public String everyNth(String str, int n) {
        String result = "";
        for (int i = n - 1; i < str.length(); i = i + n) {
            result += str.charAt(i);
        }
        return result;
    }

} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM