我需要能够输入1-10000(例如1250)中的原始数字,然后输入数字以将其除以2(例如2),以便程序将原始数字除以数字(因此答案将是12、25 50)。我将如何编写代码以将字符串中的数字拉入original.charAt(...)?
谢谢!
import java.util.Scanner;
public class Numbers{
public static void main(String[] args) {
for (int i=1; i<=5; i++) {
System.out.println("Enter input:");
Scanner input = new Scanner(System.in);
String original= input.nextLine();
System.out.println("Enter target:");
int number= input.nextInt();
// input.close();
long output = 0;
for (long k=0; k<=(original.length()-number); k++) {
while (original.length)
///下面的代码基本上是我要完成的目标 长值= original.charAt(h,(to)number + k);
答案 0 :(得分:1)
int len = original.length();
if(number <= 0 || number > len) { // Checking for Invalid partition
System.out.println("Invalid Partition");
}
else {
String[] result = new String[len - number + 1];
int index = 0;
for(int i = 0; i < len && index < result.length; ++i) {
for(int j = 0; j < number && i + j < len; ++j) {
result[index] = result[index] + original.charAt(i+j); // Appending character into partition
}
index ++;
}
for(int i = 0; i < result.length; ++i) {
System.out.println(result[i]); // Printing all partition.
}
}
这将满足您的要求。但是,您应该自己应用其他限制,例如数字范围。但是我想使用substring方法代替charAt()方法。更有效地清洁。
子字符串方法
String[] result = new String[len - number + 1];
int index = 0;
for(int i = 0; index < result.length && i + number - 1 < len; ++i) {
result[index] = original.substring(i, i + number);
index ++;
}
for(int i = 0; i < result.length; ++i) {
System.out.println(result[i]);
}
答案 1 :(得分:0)
要获取给定长度的所有子字符串,请定义此方法:
public static List<String> substrings(String str, int len) {
List<String> result = new ArrayList<>();
for (int i = 0; i <= str.length() - len; i++) {
result.add(str.substring(i, len));
}
return result;
}
此问题的代码不应超过此长度。
除非您是在每个纳秒都很重要的环境中进行编程,否则除外。这些情况非常罕见。在所有其他情况下,编写清晰的代码比编写快速的代码更为重要。