在java输出中添加连字符

在java输出中添加连字符,java,hyphen,Java,Hyphen,比如说,我想做一个字符到数字的转换,想在输出中添加连字符。在前3位有连字符,然后每4位后有一个连字符 e、 g.预期产出 comecomecomecomecome 266-3266-3266-3266-3266-3 我只添加了第一个连字符,但如何在4位数字后添加子序列连字符 这里是我如何为第一个连字符做的 if( count==3) { Number += "-"; } i++; 我现在得到的输出 callhome 225-54663 这是

比如说,我想做一个字符到数字的转换,想在输出中添加连字符。在前3位有连字符,然后每4位后有一个连字符

e、 g.预期产出

    comecomecomecomecome

    266-3266-3266-3266-3266-3
我只添加了第一个连字符,但如何在4位数字后添加子序列连字符

这里是我如何为第一个连字符做的

if(  count==3) {
       Number += "-";
   }
   i++;
我现在得到的输出

 callhome
 225-54663
这是主要代码

  import java.util.Scanner;

 {
  public static void main (String[] args)

 {
   Scanner  console = new Scanner(System.in);


   {
    System.out.println("Enter the  word to be converted : ");
    String Letter = console.nextLine();
    Letter = Letter.replaceAll("\\s", ""); 
    Letter = Letter.toLowerCase();
    String  Number="";


    int count=0;
     int  i=0;

    while( count < Letter.length()) 
      {switch(Letter.charAt(i))
      {case 'A':case 'B':case 'C': case 'a': case 'b': case 'c':
              Number += "2";
              count++;
      break;
  case 'D':case 'E':case 'F': case 'd': case 'e': case 'f':
               Number += "3";
              count++;
      break;
   case 'G':case 'H':case 'I': case 'g': case 'h': case 'i':
              Number += "4";
              count++;
      break;
    case 'J':case 'K':case 'L': case 'j': case 'k': case 'l':

              Number += "5";
             count++;
      break;
    case 'M':case 'N':case 'O': case 'm': case 'n': case 'o':
          Number += "6";
              count++;
      break;
    case 'P':case 'R':case 'S': case 'p': case 'r': case 's':
              Number += "7";
              count++;
      break;
    case 'T':case 'U':case 'V': case 't': case 'u': case 'v':
            Number += "8";
            count++;
      break;
    case 'W':case 'X':case 'Y':case 'Z': case 'w': case 'x': case 'y': case 'z':
         Number += "9";
         count++;
      break;

      }

    if(  count==3) {
       Number += "-";
   }
   i++;

           }
     System.out.println( Number );

    }


    }}
import java.util.Scanner;
{
公共静态void main(字符串[]args)
{
扫描仪控制台=新扫描仪(System.in);
{
System.out.println(“输入要转换的单词:”);
字符串字母=console.nextLine();
字母=字母.replaceAll(\\s,“”);
Letter=Letter.toLowerCase();
字符串编号=”;
整数计数=0;
int i=0;
while(count
您应该使用:

因此,这将在位置3、7、11之后放置连字符。。。等等。

试试下面。。。 我已经修改了程序,它正在工作

package com.test;

import java.util.Scanner;
public class TestPrint 
{
public static void main (String[] args)

{
Scanner  console = new Scanner(System.in);


{
  System.out.println("Enter the  word to be converted : ");
  String Letter = console.nextLine();
  Letter = Letter.replaceAll("\\s", ""); 
 Letter = Letter.toLowerCase();
 String  Number="";


 int count=0,prevCount=0;
 int  i=0;

 while( count < Letter.length()) 
 {switch(Letter.charAt(i))
 {case 'A':case 'B':case 'C': case 'a': case 'b': case 'c':
         Number += "2";
         count++;
 break;
case 'D':case 'E':case 'F': case 'd': case 'e': case 'f':
          Number += "3";
         count++;
 break;
 case 'G':case 'H':case 'I': case 'g': case 'h': case 'i':
         Number += "4";
         count++;
 break;
  case 'J':case 'K':case 'L': case 'j': case 'k': case 'l':

         Number += "5";
        count++;
 break;
  case 'M':case 'N':case 'O': case 'm': case 'n': case 'o':
     Number += "6";
         count++;
 break;
 case 'P':case 'R':case 'S': case 'p': case 'r': case 's':
         Number += "7";
         count++;
 break;
 case 'T':case 'U':case 'V': case 't': case 'u': case 'v':
       Number += "8";
       count++;
 break;
 case 'W':case 'X':case 'Y':case 'Z': case 'w': case 'x': case 'y': case 'z':
    Number += "9";
    count++;
 break;

 }

 if(count==3 || (count-prevCount == 4)) {
  Number += "-";
  prevCount = count;
 }
 i++;

      }
    System.out.println( Number );

  }


 }}
package.com.test;
导入java.util.Scanner;
公共类测试打印
{
公共静态void main(字符串[]args)
{
扫描仪控制台=新扫描仪(System.in);
{
System.out.println(“输入要转换的单词:”);
字符串字母=console.nextLine();
字母=字母.replaceAll(\\s,“”);
Letter=Letter.toLowerCase();
字符串编号=”;
int count=0,prevCount=0;
int i=0;
while(count
你就快到了!一个快速的(当然不是最佳的)回答:复制你的
if
语句,并通过
count==position\u of_second\u hyphen
==Hmmm更改条件,但当我尝试时,它会说字符串超出范围。哦,我明白了。。。你能提供完整的代码吗?尤其是你的循环:)因为它永远是3然后4,你可以在
计数==3
中为3使用一个变量,在if中,将这个变量值改为4。你还应该将从输入读取的字符小写(或大写)以提高可读性tanks!但是我尝试了if((count-3)%4==0),它也起了作用。是的,它也起了同样的作用。
package com.test;

import java.util.Scanner;
public class TestPrint 
{
public static void main (String[] args)

{
Scanner  console = new Scanner(System.in);


{
  System.out.println("Enter the  word to be converted : ");
  String Letter = console.nextLine();
  Letter = Letter.replaceAll("\\s", ""); 
 Letter = Letter.toLowerCase();
 String  Number="";


 int count=0,prevCount=0;
 int  i=0;

 while( count < Letter.length()) 
 {switch(Letter.charAt(i))
 {case 'A':case 'B':case 'C': case 'a': case 'b': case 'c':
         Number += "2";
         count++;
 break;
case 'D':case 'E':case 'F': case 'd': case 'e': case 'f':
          Number += "3";
         count++;
 break;
 case 'G':case 'H':case 'I': case 'g': case 'h': case 'i':
         Number += "4";
         count++;
 break;
  case 'J':case 'K':case 'L': case 'j': case 'k': case 'l':

         Number += "5";
        count++;
 break;
  case 'M':case 'N':case 'O': case 'm': case 'n': case 'o':
     Number += "6";
         count++;
 break;
 case 'P':case 'R':case 'S': case 'p': case 'r': case 's':
         Number += "7";
         count++;
 break;
 case 'T':case 'U':case 'V': case 't': case 'u': case 'v':
       Number += "8";
       count++;
 break;
 case 'W':case 'X':case 'Y':case 'Z': case 'w': case 'x': case 'y': case 'z':
    Number += "9";
    count++;
 break;

 }

 if(count==3 || (count-prevCount == 4)) {
  Number += "-";
  prevCount = count;
 }
 i++;

      }
    System.out.println( Number );

  }


 }}