Criar uma sequencia numérica em java

Estou tentando fazer um programa java que gere um sequencia de números, mas esta sequencia varia, aonde o usuário irá inserir as informações, vou jogar um exemplo que fiz pelo Excel, na verdade teria que ficar igualzinho a ele.

Um arquivo txt com o seguinte informações: 15

\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15
\001\035\069\103\137\171\205\239\273\307\341\375\409\443\477
\002\036\070\104\138\172\206\240\274\308\342\376\410\444\478
\003\037\071\105\139\173\207\241\275\309\343\377\411\445\479
\004\038\072\106\140\174\208\242\276\310\344\378\412\446\480
\005\039\073\107\141\175\209\243\277\311\345\379\413\447\481
\006\040\074\108\142\176\210\244\278\312\346\380\414\448\482
\007\041\075\109\143\177\211\245\279\313\347\381\415\449\483
\008\042\076\110\144\178\212\246\280\314\348\382\416\450\484
\009\043\077\111\145\179\213\247\281\315\349\383\417\451\485
\010\044\078\112\146\180\214\248\282\316\350\384\418\452\486
\011\045\079\113\147\181\215\249\283\317\351\385\419\453\487
\012\046\080\114\148\182\216\250\284\318\352\386\420\454\488
\013\047\081\115\149\183\217\251\285\319\353\387\421\455\489
\014\048\082\116\150\184\218\252\286\320\354\388\422\456\490
\015\049\083\117\151\185\219\253\287\321\355\389\423\457\491
\016\050\084\118\152\186\220\254\288\322\356\390\424\458\492
\017\051\085\119\153\187\221\255\289\323\357\391\425\459\493
\018\052\086\120\154\188\222\256\290\324\358\392\426\460\494
\019\053\087\121\155\189\223\257\291\325\359\393\427\461\495
\020\054\088\122\156\190\224\258\292\326\360\394\428\462\496
\021\055\089\123\157\191\225\259\293\327\361\395\429\463\497
\022\056\090\124\158\192\226\260\294\328\362\396\430\464\498
\023\057\091\125\159\193\227\261\295\329\363\397\431\465\499
\024\058\092\126\160\194\228\262\296\330\364\398\432\466\500
\025\059\093\127\161\195\229\263\297\331\365\399\433\467\501
\026\060\094\128\162\196\230\264\298\332\366\400\434\468\502
\027\061\095\129\163\197\231\265\299\333\367\401\435\469\503
\028\062\096\130\164\198\232\266\300\334\368\402\436\470\504
\029\063\097\131\165\199\233\267\301\335\369\403\437\471\505
\030\064\098\132\166\200\234\268\302\336\370\404\438\472\506
\031\065\099\133\167\201\235\269\303\337\371\405\439\473\507
\032\066\100\134\168\202\236\270\304\338\372\406\440\474\508
\033\067\101\135\169\203\237\271\305\339\373\407\441\475\509
\034\068\102\136\170\204\238\272\306\340\374\408\442\476\510\

De erro no Fórum em algumas colunas o correto é ficar “//” e não o sonal de crase como saiu aqui no exemplo.

Atualmente faço no Excel e gostaria de montar isso no java eu comecei a fazer fiz apenas 1 linha, mas gostaria que com algumas informações passadas dentro dos atributos já gerassem automaticamente toda essa numeração.

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
 
public class TesteNumeros2 {

public static void main(String[] args) {
	
	double total = 500;
	double dividirNumContatos = 15;
	double totalDivisao = 0;
	
	totalDivisao = total / dividirNumContatos;
	
	
	//Arredondar um Double decimal sempre para cima, independente do valor
	BigDecimal bTotalDivisao = new BigDecimal(totalDivisao).setScale(0, RoundingMode.CEILING);
	
	//System.out.println(bTotalDivisao.intValue());
	
	DecimalFormat df = new DecimalFormat();
	
	df.applyPattern("000");
	
	
	
		
	for (int i = 1; i <= total; i = i + ((BigDecimal)bTotalDivisao).intValue()) {
		
		
		System.out.print("\\" + i + "\\");
		
	}
	
	
	
	
	
}

}

com esse código ele gera:

\1\35\69\103\137\171\205\239\273\307\341\375\409\443\477\

precisava que ficasse com 001, por isso que tentei usar o DecimalFormat?

Faltar chamar o metodo format do DecimalFormat no teu System.out.println, segue :

System.out.print("\\" + df.format(i) + "\\");

1 curtida

Legal, deu certo, mas e quanto as demais linha do programa, pois gostaria que fizesse isso até a linha 34, mas não estou conseguindo pensar em como fazer.

Pensei em utilizar Arrays, mas no caso não seria um padrão que sempre seriam 15 colunas por 34 linhas, isso é variável, ae não sei como fazer.

vc diz que o numero de colunas e linhas podem variar?

isso estava tentando jogar esse “for” dentro do “while” para que cada linha mude fica tipo assim:

\001\035\069\103\137\171\205\239\273\307\341\375\409\443\477
\002\036\070\104\138\172\206\240\274\308\342\376\410\444\478
\003\037\071\105\139\173\207\241\275\309\343\377\411\445\479…

até o número 034

faz assim:

 int coluna=15;
 int linhas=1;
 for(){
  String tmp = "";
  for(int k=0;k < coluna;k++){
    tmp+="\\"+df.format(i)+"\\";
  }
 System.out.print(tmp); 
 if(linhas==34){
   break;
 }
 linhas++;
}

Obrigado, vou testar a sua forma!

Mas eu tb consegui de outro jeito, acho q mais complicado, rss, como sou iniciante de java veja

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;

public class TesteNumeros2 {

	public static void main(String[] args) {
	
	double total = 1000;
	double dividirNumContatos = 6;
	double totalDivisao = 0;
	
	totalDivisao = total / dividirNumContatos;
	
	
	//Arredondar um Double decimal sempre para cima, independente do valor
	BigDecimal bTotalDivisao = new BigDecimal(totalDivisao).setScale(0, RoundingMode.CEILING);
	
	//Converter BigDecimal para Double
	//double convTotalDivisao = bTotalDivisao.doubleValue();
	
	int x = ((BigDecimal)bTotalDivisao).intValue();	
	int z = (int)dividirNumContatos;	
	int totalArredondadoFor = z * x;
	
	//System.out.println(totalArredondadoFor);
	
	//System.out.println(bTotalDivisao.intValue());
	
	DecimalFormat df = new DecimalFormat();
	
	df.applyPattern("000");
	

	int y = 0;
	
		
	System.out.print(z);
	
	System.out.println("");
	
	for (int t = 1; t <= z; t++) {
		System.out.print("\\" + "n" + t + "\\");
	}
	
	
	while (y <= x - 1 ) {
		
		y ++;
		
		System.out.println("");			
		
		
		for (int i = y; i <= totalArredondadoFor; i = i + ((BigDecimal)bTotalDivisao).intValue()) {
			
			
			System.out.print("\\" + df.format(i) + "\\");
			
			
		}
		
	}
		

	
	
	
	
	
}

 }
1 curtida