[英]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.