Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在if语句后识别扫描仪中的新行_Java_Android - Fatal编程技术网

Java 在if语句后识别扫描仪中的新行

Java 在if语句后识别扫描仪中的新行,java,android,Java,Android,我对android有点陌生,我一直对scanner类有问题,尤其是.newline(),因为我无法在下面的代码中使用它java只是扫描文档中的所有内容而不检查行 package com.cal.omida.calupdater; import android.content.DialogInterface; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import an

我对android有点陌生,我一直对scanner类有问题,尤其是
.newline()
,因为我无法在下面的代码中使用它java只是扫描文档中的所有内容而不检查行

package com.cal.omida.calupdater;

import android.content.DialogInterface;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.util.Scanner;

public class MainActivity extends AppCompatActivity {
    private TextView textv;
    private Button submitButton;
    private String TAG = "got here";
    private String[] stringsarray = {"empty","empty","empty","empty","empty","empty","empty","empty","empty","empty","empty"};
    private String exp = null;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        textv = (TextView) findViewById(R.id.mainentry);
        submitButton = (Button) findViewById(R.id.process);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });

        submitButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String temp = textv.getText().toString();
                String main = removeTab(temp);
                Scanner scanner = new Scanner(main);
                String[] finalString = scannerclass(scanner);
                Log.d("found", main);
                for (int io = 0; io<11;io++){
                    exp+=finalString[io]+"\n";
                }
                alert(exp,scanner);
            }
        });

    }

    private String[] scannerclass(Scanner scanner){
        scanner.useDelimiter(";");
        int i = 0;
        while (scanner.hasNext()) {
            String text = scanner.next();
            stringsarray[i] = text;
            i++;
        }
        return stringsarray;

    }

    private void alert(String text, final Scanner scanner){
        AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
        alertDialog.setTitle("Alert");
        alertDialog.setMessage(text);
        alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "Add to cal",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        //todo add to cal function
                        exp=null;
                        if (scanner.hasNextLine()){
                            scanner.nextLine();
                            String[] finalString = scannerclass(scanner);
                            for (int io = 0; io<11;io++){
                                exp+=finalString[io]+"\n";
                            }
                            alert(exp,scanner);
                        }

                    }
                });
        alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "Cancel",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                        exp=null;
                    }
                });
        alertDialog.show();
    }

    private String removeTab(String main) {
        String main2 = main.replace("\t",";");
        return main2;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}
包com.cal.omida.calupdater;
导入android.content.DialogInterface;
导入android.os.Bundle;
导入android.support.design.widget.FloatingActionButton;
导入android.support.design.widget.Snackbar;
导入android.support.v7.app.AlertDialog;
导入android.support.v7.app.AppActivity;
导入android.support.v7.widget.Toolbar;
导入android.util.Log;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.view;
导入android.widget.Button;
导入android.widget.TextView;
导入java.util.Scanner;
公共类MainActivity扩展了AppCompatActivity{
私有文本视图文本电视;
私人按钮提交按钮;
私有字符串TAG=“got here”;
私有字符串[]stringsarray={“empty”、“empty”、“empty”、“empty”、“empty”、“empty”、“empty”、“empty”、“empty”};
私有字符串exp=null;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
textv=(TextView)findViewById(R.id.mainentry);
submitButton=(按钮)findViewById(R.id.process);
设置支持操作栏(工具栏);
FloatingActionButton fab=(FloatingActionButton)findViewById(R.id.fab);
fab.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Snackbar.make(查看“替换为您自己的操作”,Snackbar.LENGTH\u LONG)
.setAction(“Action”,null).show();
}
});
submitButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
字符串temp=textv.getText().toString();
主串=移除选项卡(临时);
扫描仪=新扫描仪(主);
字符串[]finalString=scannerclass(扫描仪);
日志d(“发现”,主要);

对于(int io=0;io而言,解决方法是使用一台扫描仪获取每一行,然后使用第二台扫描仪分离每一行。

例如:

String main = /*something*/;
Scanner lineScanner = new Scanner(main); // will scan each line, separated by a newline
while(lineScanner.hasNextLine()){
    Scanner semicolonSeparatedScanner = new Scanner(lineScanner.nextLine());
    /* work from here */
}
记住,您甚至可以使用String.split进一步简化代码:

while(lineScanner.hasNextLine()){
    String[] semicolonSeparatedText = lineScanner.nextLine().split(";");
}