java Scanner hasNext的问题
packagegather;//字符串排序importjava.util.Scanner;importjava.util.ArrayList;publicclassStr...
package gather;
//字符串排序
import java.util.Scanner;
import java.util.ArrayList;
public class StringSort {
public static void main(String args[]){
Scanner in=new Scanner(System.in).useDelimiter("\\s");
ArrayList<String> list=new ArrayList<String>();
while(in.hasNext()){
list.add(in.next());
}
in.close();
String[] s=new String[list.size()];
list.toArray(s);
sort(s);
}
public static void sort(String[]str){
for(int i=0;i<str.length-1;i++){
int min=i;
for(int j=i+1;j<str.length;j++){
if(str[min].compareTo(str[j])>0) min=j;
}
String s=str[min];
str[min]=str[i];
str[i]=s;
}
for(String s:str)
System.out.print(s+" ");
}
}
这里的hasNext()是一个死循环,要ctrl+z才能让程序运行下去 有没办法让程序接受到回车就跳出 就是 输入多个字符串 用空格分开 接受到回车跳出 不好意思 悬赏很少 展开
//字符串排序
import java.util.Scanner;
import java.util.ArrayList;
public class StringSort {
public static void main(String args[]){
Scanner in=new Scanner(System.in).useDelimiter("\\s");
ArrayList<String> list=new ArrayList<String>();
while(in.hasNext()){
list.add(in.next());
}
in.close();
String[] s=new String[list.size()];
list.toArray(s);
sort(s);
}
public static void sort(String[]str){
for(int i=0;i<str.length-1;i++){
int min=i;
for(int j=i+1;j<str.length;j++){
if(str[min].compareTo(str[j])>0) min=j;
}
String s=str[min];
str[min]=str[i];
str[i]=s;
}
for(String s:str)
System.out.print(s+" ");
}
}
这里的hasNext()是一个死循环,要ctrl+z才能让程序运行下去 有没办法让程序接受到回车就跳出 就是 输入多个字符串 用空格分开 接受到回车跳出 不好意思 悬赏很少 展开
1个回答
展开全部
package zhidao;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
import java.util.ArrayList;
public class StringSort
{
public static void main ( String args[] )
{
Scanner in = new Scanner (System.in).useDelimiter ("\\s");
ArrayList<String> list = new ArrayList<String> ();
while (in.hasNext ("[\\s\\d]+"))
{
list.add (in.next ());
}
in.close ();
Collections.sort (list, new Comparator<String> ()
{
@Override
public int compare ( String o1, String o2 )
{
int first = Integer.parseInt (o1);
int second = Integer.parseInt (o2);
if (first > second)
{
return 1;
}
else if (first < second)
{
return -1;
}
else
{
return 0;
}
}
});
System.out.println (list);
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询