如何从字符串中提取两个或更多字符?

时间:2018-12-17 23:26:50

标签: java

我需要能够输入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);

2 个答案:

答案 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;
}

此问题的代码不应超过此长度。

除非您是在每个纳秒都很重要的环境中进行编程,否则除外。这些情况非常罕见。在所有其他情况下,编写清晰的代码比编写快速的代码更为重要。