2

私はJavaでいくつかのデータ構造に取り組んでおり、この文字列を2つの整数に分割する方法に少しこだわっています。基本的に、ユーザーは「1200:10」のような文字列を入力します。以前はプレゼントindexOfがあるかどうかを確認していましたが:、今はコロンの前の数字をにval設定し、他の数字をに設定する必要がありradます。substringまたはparseIntメソッドを使用する必要があると思いますが、よくわかりません。以下のコードはhttp://pastebin.com/pJH76QBbでも見ることができます

import java.util.Scanner;  // Needed for accepting input

 public class ProjectOneAndreD
 {
    public static void main(String[] args)
    {
        String input1;
        char coln = ':';
        int val=0, rad=0, answer=0, check1=0;

        Scanner keyboard = new Scanner(System.in);  //creates new scanner class
        do
        {
            System.out.println("****************************************************");
            System.out.println("             This is Project 1. Enjoy!              ");     //title
            System.out.println("****************************************************\n\n");

            System.out.println("Enter a number, : and then the radix, followed by the Enter key.");
            System.out.println("INPUT EXAMPLE:  160:2   {ENTER} ");     //example

            System.out.print("INPUT:  ");               //prompts user input.
            input1 = keyboard.nextLine();       //assigns input to string input1


            check1=input1.indexOf(coln);

            if(check1==-1)
            {
                System.out.println("I think you forgot the ':'.");

            }
            else
            {
                System.out.println("found ':'");

            }
        }while(check1==-1);
    }
 }
4

3 に答える 3

2

サブストリングは機能しますが、String.splitを調べることをお勧めします。

splitコマンドは文字列の配列を作成し、それをparseIntを使用しての整数値を取得できます。

String.splitは正規表現文字列を受け取るため、文字列を挿入したくない場合があります。

次のようなものを試してください。

"Your|String".split("\\|");、ここ|で、は文字列の2つの部分を分割する文字です。

2つの円記号は、|の正規表現の解釈ではなく、正確な文字が必要であることをJavaに通知します。これは一部のキャラクターにとってのみ重要ですが、より安全です。

出典:http ://www.rgagnon.com/javadetails/java-0438.html

うまくいけば、これで始められます。

于 2011-09-10T20:18:33.697 に答える
1

:indexOfを使用して、がどこで発生するかを知っていました。文字列の長さがnで、:インデックスで発生したとしますi。次に、0からi-1およびi +1からn-1までの部分文字列(intbeginIndex、intendIndex)を要求します。さらに簡単なのは、String::splitを使用することです。

于 2011-09-10T20:22:08.533 に答える
1

これ作って

    if(check1==-1)
    {
        System.out.println("I think you forgot the ':'.");

    }
    else
    {
     String numbers [] = input1.split(":"); //if the user enter 1123:2342 this method 

     //will
     // return array of String which contains two elements numbers[0] = "1123" and numbers[1]="2342"
    System.out.print("first number = "+ numbers[0]);
    System.out.print("Second number = "+ numbers[1]);
    }
于 2011-09-10T20:23:08.993 に答える