Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.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中的电话号码_Java_Phone Number_Regex - Fatal编程技术网

java中的电话号码

java中的电话号码,java,phone-number,regex,Java,Phone Number,Regex,我有密码把一个七个字母的短语输入电话号码。连字符没有返回到正确的位置。我真的不知道如何解决这个问题。它应该返回xxx-xxxx,如果短语是xxxx-xxx,则返回xxxx-xxx。请有人帮我解决这个问题 代码: import java.util.*; 导入java.lang.*; 公共类项目1{ 公共静态字符getNumber(字符字母){ char-ret=0; 如果(字母='A'|字母='A'|字母='B'|字母='B'|字母='C'|字母='C'){ 返回“2”; } else if(字母

我有密码把一个七个字母的短语输入电话号码。连字符没有返回到正确的位置。我真的不知道如何解决这个问题。它应该返回xxx-xxxx,如果短语是xxxx-xxx,则返回xxxx-xxx。请有人帮我解决这个问题

代码:

import java.util.*;
导入java.lang.*;
公共类项目1{
公共静态字符getNumber(字符字母){
char-ret=0;
如果(字母='A'|字母='A'|字母='B'|字母='B'|字母='C'|字母='C'){
返回“2”;
}
else if(字母='D'|字母='D'|字母='E'|字母='E'|字母='F'|字母='F'){
返回'3';
}
else if(字母='G'| |字母='G'| |字母='H'| |字母='H'| |字母='I'| |字母='I'){
返回'4';
}
else if(字母='J'|字母='J'|字母='K'|字母='K'|字母='L'|字母='L'){
返回“5”;
}
else if(字母='M'| |字母='M'| |字母='N'| |字母='N'| |字母='O'){
返回“6”;
}
else if(字母='P'|字母='P'|字母='Q'|字母='Q'|字母='R'|字母='R'|字母='S'|字母='S'){
返回'7';
}
else if(字母='T'|字母='T'|字母='U'|字母='U'|字母='V'|字母='V'){
返回'8';
}
else if(字母='W'|字母='W'|字母='X'|字母='X'|字母='Y'|字母='Y'|字母='Z'|字母='Z'){
返回'9';
}
如果(字母=“”)
返回“-”;
返回ret;
}
公共静态void main(字符串[]arg){
扫描仪输入=新扫描仪(System.in);

System.out.println(“请输入一个7个字母的短语:”); 字符串编号=input.nextLine(); 对于(int i=0;i<8;i++){ System.out.print(getNumber(number.toUpperCase().charAt(i)); } } }
它应该返回xxx-xxxx,如果短语是xxxx-xxx,则返回xxxx-xxx。请有人帮我解决这个问题

给你!一点爱对灵魂总是有好处的:

{
    String number = input.nextLine();
    final StringBuilder builder = new StringBuilder(); // Buffer the sequence.
    for (int i = 0; i < 8; i++) {
      builder.append(getNumber(number.toUpperCase().charAt(i)));
    if (builder.toString().getCharAt(2) != '-') // If the format isn't correct, fix it
      System.out.println(builder.toString().replaceFirst("(...)(.).(...)", "$1-$2$3"))
    }
}
编辑:将正则表达式更新为


这是一个快速而肮脏的解决你问题的方法

import java.util.*;

public class Project1 {
    public static char getNumber(char letter) {
        char ret = 0;
        if( letter < 'A' )
        {
            ret = '0';
        }
        else if( letter < 'D' )
        {
            ret = '2';
        }
        else if( letter < 'G' )
        {
            ret = '3';
        }
        else if( letter < 'J' )
        {
            ret = '4';
        }
        else if( letter < 'M' )
        {
            ret = '5';
        }
        else if( letter < 'P' )
        {
            ret = '6';
        }
        else if( letter < 'T' )
        {
            ret = '7';
        }
        else if( letter < 'W' )
        {
            ret = '8';
        }
        else if( letter <= 'Z' )
        {
            ret = '9';
        }
        else
        {
            ret = '0';

        }
        return ret;
    }

    public static void main (String[] arg) {
        Scanner input = new Scanner(System.in);
        System.out.println( "Please enter a 7 letter phrase: " );
        String number = input.nextLine().toUpperCase();
        StringBuffer buff = new StringBuffer();
        for( int i = 0, j = 0; j < number.length() && i < 7; j++ )
        {
            char c = number.charAt(j);
            if( c != ' ' )
            {
                if( i == 3 )
                {
                    buff.append( '-' );
                }
                buff.append( getNumber( c ) );
                i++;
            }
        }
        System.out.println( buff );
    }
}
import java.util.*;
公共类项目1{
公共静态字符getNumber(字符字母){
char-ret=0;
如果(字母<'A')
{
ret='0';
}
否则,如果(字母<'D')
{
ret='2';
}
else if(字母<'G')
{
ret='3';
}
否则如果(字母<'J')
{
ret='4';
}
else if(字母<'M')
{
ret='5';
}
否则如果(字母<'P')
{
ret='6';
}
否则,如果(字母<'T')
{
ret='7';
}
否则,如果(字母<'W')
{
ret='8';
}

否则,如果(字母)
的连字符没有返回到正确的位置是什么意思。
?如果这是在
java
中,为什么不使用
开关
控制语句?…它使您的代码压缩,您可以使用
大小写堆栈
s来代替!@Unihedron:(int i=0;i
@user3822460:
-
的位置不取决于
getNumber
的实现,而只取决于它的输入。提供不同的输入。您的代码只是用连字符替换空格-如果输入字符串在第四个位置包含空格,则输出也将在第四个位置包含连字符(不是第三个位置).Lol,这是对这个问题的恰当回答。@studro Right-这不是最有效的,因为它使用了一点正则表达式,我相信一些字符串处理专家很快会给出另一个答案。:)我如何只显示最后一个输出?谢谢你的帮助btw@user3822460定义“最后一次输出”?通用正则表达式(7位):替换
^\D*(\D)\D*(\D)\D*(\D)\D*(\D)\D*(\D)\D*(\D)\D*(\D)\D*(\D)\D*$
\1\2\3-\4\5\6\7
这并没有在任何地方添加连字符:/studro默默地把手伸进他的包拿出他闪亮的新编译器,在太空中疾驰而过的是一颗10公里宽的陨石朝着纽约城飞去。是的,我做了所有这些。一旦我修复了这些,它就在我的计算机上运行。仍然没有连字符。请输入一个7字符er短语:[获得贷款]4385626@studro一个字符的编辑并不能很好地工作,而且我也找不到任何语法错误来纠正。
builder.toString().replaceFirst("^\\D*(\\d)\\D*(\\d)\\D*(\\d)\\D*(\\d)\\D*(\\d)\\D*(\\d)\\D*(\\d)\\D*$", "$1$2$3-$4$5$6$7");
import java.util.*;

public class Project1 {
    public static char getNumber(char letter) {
        char ret = 0;
        if( letter < 'A' )
        {
            ret = '0';
        }
        else if( letter < 'D' )
        {
            ret = '2';
        }
        else if( letter < 'G' )
        {
            ret = '3';
        }
        else if( letter < 'J' )
        {
            ret = '4';
        }
        else if( letter < 'M' )
        {
            ret = '5';
        }
        else if( letter < 'P' )
        {
            ret = '6';
        }
        else if( letter < 'T' )
        {
            ret = '7';
        }
        else if( letter < 'W' )
        {
            ret = '8';
        }
        else if( letter <= 'Z' )
        {
            ret = '9';
        }
        else
        {
            ret = '0';

        }
        return ret;
    }

    public static void main (String[] arg) {
        Scanner input = new Scanner(System.in);
        System.out.println( "Please enter a 7 letter phrase: " );
        String number = input.nextLine().toUpperCase();
        StringBuffer buff = new StringBuffer();
        for( int i = 0, j = 0; j < number.length() && i < 7; j++ )
        {
            char c = number.charAt(j);
            if( c != ' ' )
            {
                if( i == 3 )
                {
                    buff.append( '-' );
                }
                buff.append( getNumber( c ) );
                i++;
            }
        }
        System.out.println( buff );
    }
}